ligo-ex ligo-ds
  Richardson Lab Experimental Log, Page 7 of 14  Not logged in ELOG logo
Entry  Tue Feb 25 10:56:25 2025, Cynthia, Update, Interferometer Simulations, mirror coating added for simulation rerun updats_(3).pdf
I have tried to rerun the simulation on finesse after adding the mirror coating. The result has a large fluctuation in required input power vs arm power that is concerning. I am currently working on potentially resolve this issue and get a reasonable graph before I proceed to optimizing the thermal maps.
Entry  Tue Mar 4 10:18:43 2025, Cynthia, Update, Interferometer Simulations, attempted to remove curvature and tilt for the coating  3_4_updates.pdf
 
Entry  Tue Mar 11 11:28:52 2025, Cynthia, Update, Interferometer Simulations, flattening mirror to study power discrepency updates_3_11_(1).pdf
 
Entry  Tue Apr 8 00:17:01 2025, Michael, Update, Interferometer Simulations, Squeezing Performance Graphs for Case With and Without Toroidal Mirrors in LIGO 
I've created some graphs for the frequency dependent observed squeezing level in LIGO for both the nominal case and the case where we include toroidal mirrors, giving some interesting results. https://docs.google.com/presentation/d/1RBr47hNaxFTdGrwys5ZCUEUOgVOVHmZ2B_5EQwY62IY/edit?usp=sharing
Entry  Tue Apr 15 11:37:17 2025, Cynthia, Update, Interferometer Simulations, Finishing up mirror coating map step updates_4_15_2025.pdf
 
Entry  Thu Apr 17 12:12:29 2025, Liu, HowTo, Interferometer Simulations, Preventing Thread Contention in Multiprocessing with Finesse and Cython 

Avoiding Thread Contention When Using Multiprocessing with Finesse and Cython

When running Monte Carlo simulations or other computational workloads, it's common to use Python's ProcessPoolExecutor to parallelize multiple independent tasks. This approach works well—until it interacts with low-level libraries that themselves use multi-threading under the hood.

The Problem: Thread Over-Subscription

In a recent project, I ran into a significant performance issue while executing a large number of Monte Carlo trials using a process pool with 30 worker processes on Megatron (with 48 cores). Each trial ran a function that internally used cython.parallel.prange for fast, element-wise operations, which is what Finesse uses under the hood for many internal numerical calculations. Cython, via OpenMP, was configured to use all available CPU threads per process by default.

This resulted in severe thread over-subscription. With 30 parallel processes and each process attempting to use all 48 threads, the system was launching over 1,400 threads concurrently. The CPU quickly became saturated, and the tasks stalled. In some cases, the system became unresponsive, and the jobs had to be canceled repeatedly.

This happens because when the function calls into these libraries from within a Python multiprocessing context, each subprocess will attempt to use the full number of threads available to the machine.

The Solution: Limit Threads per Process

The solution is simple: explicitly limit the number of threads each subprocess is allowed to use. This can be done by setting the environment variable at the top of your script, before importing any thread-hungry libraries like Finesse.

      
import os
os.environ["OMP_NUM_THREADS"] = "1"

    

By setting OMP_NUM_THREADS to "1", we ensure that each multiprocessing worker uses only one thread internally, preventing them from overloading the system and allowing the tasks to run more efficiently.

Entry  Mon Apr 21 16:56:42 2025, Michael, Update, Interferometer Simulations, Fixed Observed Squeezing Curve for Toroidal Mirror Case updated_observed_squeezing_plot.png
We've resolved the issue with the observed squeezing curve for the toroidal mirror case showing worse performance at lower frequencies and better performance at higher frequencies compared to the nominal case. This issue was caused by the beam parameter at the squeezer being fixed before changing the radii of curvature of the mirrors. This has been changed to be fixed after changing the mirrors, and we see an improvement in the toroidal mirror case.
Entry  Tue Apr 22 11:04:31 2025, Liu, Update, Interferometer Simulations, Test Mass Thermal State Decoder Update with Interferometer Operation Update.pdf
 
Entry  Tue Apr 29 10:59:25 2025, Liu, Update, Interferometer Simulations, Test Mass Thermal State Decoder with Updated Comparison Cases  Update.pdf
 
Entry  Tue May 6 13:07:34 2025, Michael, Update, Interferometer Simulations, Initial Convergence Plots for Toroidal Mirrors Project Convergence_Plots_5_6_25.pdfConvergence_Plots_5_6_25-1.pdfaperture_num_points_convergence.png
 
Entry  Mon May 26 23:24:33 2025, Michael, Update, Interferometer Simulations, Initial Monte Carlo Simulations for Toroidal Mirrors Project 
I've run an initial Monte Carlo simulation for statistical comparison of toroidal mirrors for the dual FROSTI TCS case. Below is the link to the slides.

slideshow

Entry  Tue Jun 3 12:16:13 2025, Cynthia , Update, Interferometer Simulations, Point absorber simulation on radially averaged profile  update_6_3.pdf
 
Entry  Tue Jun 24 13:47:58 2025, Liu, Update, Interferometer Simulations, Alternative FROSTI A# optimization approach Update.pdf
Alternative FROSTI A# optimization approach
Entry  Tue Jul 29 11:27:57 2025, Liu, Update, Interferometer Simulations, Multi-ring FROSTI optimization for A# Update.pdfscene-export-temp.htmlscene-export-deformation.html
 
Entry  Tue Aug 5 12:21:04 2025, Liu, Update, Interferometer Simulations, FROSTI A# optimization Update.pdf
A# multi-ring FROSTI optimization
Entry  Tue Aug 12 12:16:21 2025, Liu, Update, Interferometer Simulations, Multi-ring FROSTI optimization for A# Update.pdf
Multi-ring FROSTI optimization for A# with static polishing
Entry  Tue Aug 12 13:32:43 2025, Liu, Update, Interferometer Simulations,  Screenshot_2025-08-12_at_1.31.11_PM.pngScreenshot_2025-08-12_at_1.31.17_PM.png
Differences in Fused Silica parameters.
Entry  Tue Aug 26 12:14:24 2025, Liu, Update, Interferometer Simulations, Multi-ring FROSTI design for A# with ring heater optimization  Update_(1).pdf
Multi-ring FROSTI design for A# with ring heater optimization
Entry  Tue Aug 26 12:18:36 2025, Michael, Update, Interferometer Simulations, Squeezing Plots for SRC Parameter Space Screenshot_2025-08-26_at_12-16-01_LIGO_Project_Log_-_Google_Docs.pngScreenshot_2025-08-26_at_12-16-32_LIGO_Project_Log_-_Google_Docs.pngScreenshot_2025-08-26_at_12-17-26_LIGO_Project_Log_-_Google_Docs.png
I've run a few plots of observed squeezing in the LIGO interferometer to fully ensure that the point we have selected is the optimal point for squeezing. Contrary to what I expected, there seems to be much more degenerate "optimal" configurations. While the toroidal case may be near optimal, it seems that the solution we found for a non astigmatic beam is not the only one. I will further explore this space to find more optimal/tolerant positions, which I see evidence of. Additionally, as observed squeezing is computational expensive to compute, I found that the difference in round-trip gouy phase accumulation between the x and y planes is a good approximation for an optimal squeezing state, which I believe makes physical sense. This may be helpful to quickly compute other optimal conditions.
Entry  Tue Sep 2 12:41:33 2025, Liu, Update, Interferometer Simulations, Multi-ring FROSTI design for A# with ring heater optimization Update.pdf
[Tyler, Liu] Ring heater optimization, continued
Entry  Tue Sep 9 12:13:38 2025, Liu, Update, Interferometer Simulations, Multi-ring FROSTI optimization for A# with grid search Update.pdf
Multi-ring FROSTI optimization based on IFO metrics for A# with grid search
Entry  Tue Sep 16 12:18:09 2025, Liu, Update, Interferometer Simulations, Grid search optimization for single-ring FROSTI Update.pdf
Grid search optimization for single-ring FROSTI
Entry  Tue Sep 16 12:47:29 2025, Xuesi Ma, Update, Interferometer Simulations, Frosti actuation impact analysis 
Slides
Entry  Tue Sep 23 12:39:29 2025, Liu, Update, Interferometer Simulations, Multi-ring FROSTI optimization for A# Update.pdf
 
Entry  Tue Sep 30 12:26:15 2025, Liu, Update, Interferometer Simulations, FROSTI optimization for A# Update.pdf
 
Entry  Thu Oct 9 12:18:14 2025, Liu, Update, Interferometer Simulations, Multi-ring FROSTI optimization for A# Update.pdf
 
Entry  Thu Oct 16 10:31:20 2025, Liu, Update, Interferometer Simulations, Multi-ring FROSTI optimization for A# interactive_plot_dropdown.htmlUpdate.pdf
Two-ring FROSTI grid search with 4D parameter space search and visualization
Entry  Thu Oct 23 10:07:51 2025, Liu, Update, Interferometer Simulations, Multi-ring FROSTI optimization for A# loss_embedding.htmlUpdate.pdf
4D parameter space visualization and dimensionality reduction for better optimization
Entry  Thu Oct 23 11:34:05 2025, Michael, Update, Interferometer Simulations, Updated Exploration into Different SRC Mirror Configurations for Improved Squeezing Update_Slides_10_23_25.pdfUpdate_Slides_10_30_25.pdf
 
Entry  Thu Oct 30 11:45:44 2025, Liu, Update, Interferometer Simulations, Multi-ring FROSTI optimization for A# Update.pdf
Multi-ring FROSTI optimization for A#: dimensionality reduction with PCA vs. t-SNE
Entry  Thu Nov 13 12:39:01 2025, Mary, Update, Interferometer Simulations,  PA.pdf
 
Entry  Thu Feb 5 13:34:13 2026, Cynthia , Update, Interferometer Simulations, Point absorber + miscentering simulation  update2_5_(3).pdf
 
Entry  Thu Feb 5 13:49:31 2026, Michael, Update, Interferometer Simulations, Updating Squeezing Mode Matching Logic screenshot2.pngscreenshot1.png
After some tests, I have determined that the squeezer in the aLIGO katscript is currently being matched to the SRC. This logic will cause issues if the SRC mode is perturbed and no longer closely matched to arm modes. Currently, my modification to the code involves taking the arm mode incident at the ITM and propagate the beam parameter using the ABCD matrix from the ITM to the injected squeezing port. Rerunning some of the squeezing simulations for a cold interferometer, it appears the toroidal case remains the same but the nominal mirror case degrades. Is this expected when we match to the arm instead of the SRC?
Entry  Thu Feb 5 13:59:42 2026, Mary, Update, Interferometer Simulations,  112.pdf
 
Entry  Thu Feb 19 12:34:18 2026, Cynthia, Update, Interferometer Simulations, Point absorber simulation update_2_18.pdf
 
Entry  Thu Feb 26 20:25:10 2026, Cynthia Liang, Update, Interferometer Simulations, Point Absorber+Miscentering Simulation update_2_18_Merged.pdf
 
Entry  Thu Mar 12 12:48:58 2026, Cynthia, Update, Interferometer Simulations, New Result of point absorber+miscentering Untitled_presentation_(1).pdf
 
Entry  Thu Mar 12 13:18:49 2026, Cece Ochoa, Update, Interferometer Simulations, CE Cavity Design Update 
Animation showing how modes shift in the CE arm cavity for radius 27581m and mirror radius of40cm as the laser powers up the 1.5 MW. https://drive.google.com/file/d/1UNvWmONWYDzroelC5j_Z2emGSotyzcCC/view?usp=sharing
Entry  Thu Jun 2 16:14:58 2022, Jon, HowTo, General, Custom conda environment on JupyterHub 

Cross-linking instructions: How to run a Jupyter notebook in your custom Conda environment

Entry  Mon Jul 11 14:29:45 2022, Jon, Omnistructure, General, HEPA filter installed IMG_1530.png
Today I unpacked and installed the new HEPA filter for the lab. It is an Omni CleanAir OCA1210 capable of 1200 CFM. This flow rate is sufficient to turn over the air in the room once every 4 minutes, or 14 times per hour. Hopefully this will cut down on our particulate accumulation issues.
Entry  Mon Jan 23 17:26:15 2023, Peter Carney, Update, General, Oven cleaning 
Aiden and Cao Turned on the oven to 120 deg C for 12 hours. After 12 hours, put it at 200 deg C for 48 hours.
Entry  Thu Jan 26 18:58:25 2023, Aiden, Update, General, Oven Heating 
Aiden cleaned the oven with methanol again and set the oven to 260 degC for 12 hours.
Entry  Fri Jan 27 18:44:31 2023, Julian , Update, General, Vacuum Chanmber Cleaning 
I used the IPA wipes to wipe down the inside of the chamber the best I could. I cleaned the main chamber but not any of the connecting joints. When I finished I did a once over with a fresh wipe and found no residue.
Entry  Fri Feb 3 13:04:04 2023, shane, Summary, General, clean room particle counts 1/25/23 cleanroomcountsJan25.pdf
Clean room count graphs for each zone (as of January 25, 2023) attached
Entry  Mon Feb 6 20:02:32 2023, Julian, Update, General, Cleanroom Update 
I wiped down the main table (including frame, legs, and transparent shelf) and workbench using alcohol wipes. Once I cleaned all of the surfaces, I used the Hepa vacuum to pick up any fallen debris.
Entry  Fri Feb 10 15:15:30 2023, Aiden, Update, General, Bagging First Batch 
Aiden Bagged and Tagged the first batch of stainless steel parts shown on the google spread sheet. 1. Removed two parts from the oven. 2. Place them in the ESD bag. 3. Seal bag with Kapton Tape. 4. Create label including part name and number underneath it. 5. Put label onto the side of the bag where it is not sealed with tape. 6. Placed bagged items into clean room on work table. ps. total bags in first batch = 4
Entry  Sat Feb 11 00:17:27 2023, Julian, Update, General, Vacuum Chamber Cleaning 20230210_181404.jpg20230210_181424.jpg20230210_181541.jpg20230210_181606.jpg
Today I finished wiping down the rest of the vacuum chamber, specifically focusing on the connecting ports and outside surface of the chamber. When I was finished, I test wiped every surface of the chamber and took pictures confirming the current state of cleanliness; Attachment 1 "Wipes for top and bottom of chamber's upper lip." Attachment 2 " Top and bottom of chamber's lower lip." Attachment 3 "Inside and Outside main chamber." Attachment 4 "Inside connecting ports."
Entry  Sat Feb 11 17:09:29 2023, Shane, Update, General, clean room particle counts 2/10/23 occupied2.10.23.pdfunoccupied2.10.23.pdfparticlecounts2.10.23.PDF
Took a round of clean room counts after the latest clean of vacuum chamber on Feb 10. Used 60 second sample time, 5 samples for each of the 5 zones. Plots attached for both occupied clean room (one person inside, attachment 1) and unoccupied clean room (empty attachment 2), as well as the raw data from the particle counter (attachment 3).
Entry  Mon Feb 13 18:57:53 2023, Aiden, Summary, General, Clean and Bake batch 2 
Cleaned second batch of SS parts with liquinox for 20 min. Then put in oven for 5 steps; 1. Ramp, 100 degC, 15 min 2. Const, 100 degC, 30 min 3. Ramp, 200 degC, 30 min 4. Const, 200 degC, 48 hours 5. Ramp, 25 degC, (off).
Entry  Fri Feb 17 19:12:39 2023, Aiden, Update, General, Clean and Bake batch 3 IMG_4126.jpgIMG_4125.jpg
Bagged and Tagged batch 2 parts by placing no more than two parts per ESD bag then taped them with kapton tape and tagged them with their name and part number. Than placed them inside the clean room on the work bench. Total of 3 Bags used. For Batch 3- Cleaned all copper gaskets with liquinox for 10 minutes, dried them off with nitrogen, then placed into oven where the are currently undergoing the following steps; 1. Ramp to 100 deg C in 15 minutes. 2. Dwell at 100 degC for 30 minutes. 3. Ramp to 175 degC in 30 minutes. 4. Dwell at 175 degC for 24 hours. 5. Turn off and cool down to room temperature. To see the specific parts in batches 2 and 3 refer to the clean and bake data sheet. https://docs.google.com/spreadsheets/d/19gnv1q9l64gxnq76KfcXizbqShJfK0ayn2Js1SiAZok/edit?skip_itp2_check=true#gid=1549161924
ELOG V3.1.3-7933898