| ID |
Date |
Author |
Type |
Category |
Subject |
|
530
|
Tue Mar 4 10:18:43 2025 |
Cynthia | Update | Interferometer Simulations | attempted to remove curvature and tilt for the coating |
|
|
540
|
Tue Mar 11 11:28:52 2025 |
Cynthia | Update | Interferometer Simulations | flattening mirror to study power discrepency |
|
|
548
|
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 |
|
554
|
Tue Apr 15 11:37:17 2025 |
Cynthia | Update | Interferometer Simulations | Finishing up mirror coating map step |
|
|
555
|
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.
|
|
556
|
Mon Apr 21 16:56:42 2025 |
Michael | Update | Interferometer Simulations | Fixed Observed Squeezing Curve for Toroidal Mirror Case |
| 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. |
|
558
|
Tue Apr 22 11:04:31 2025 |
Liu | Update | Interferometer Simulations | Test Mass Thermal State Decoder Update with Interferometer Operation |
|
|
564
|
Tue Apr 29 10:59:25 2025 |
Liu | Update | Interferometer Simulations | Test Mass Thermal State Decoder with Updated Comparison Cases |
|
|
571
|
Tue May 6 13:07:34 2025 |
Michael | Update | Interferometer Simulations | Initial Convergence Plots for Toroidal Mirrors Project |
|
|
582
|
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 |
|
587
|
Tue Jun 3 12:16:13 2025 |
Cynthia | Update | Interferometer Simulations | Point absorber simulation on radially averaged profile |
|
|
598
|
Tue Jun 24 13:47:58 2025 |
Liu | Update | Interferometer Simulations | Alternative FROSTI A# optimization approach |
| Alternative FROSTI A# optimization approach |
|
616
|
Tue Jul 29 11:27:57 2025 |
Liu | Update | Interferometer Simulations | Multi-ring FROSTI optimization for A# |
|
|
622
|
Tue Aug 5 12:21:04 2025 |
Liu | Update | Interferometer Simulations | FROSTI A# optimization |
| A# multi-ring FROSTI optimization |
|
625
|
Tue Aug 12 12:16:21 2025 |
Liu | Update | Interferometer Simulations | Multi-ring FROSTI optimization for A# |
| Multi-ring FROSTI optimization for A# with static polishing |
|
628
|
Tue Aug 12 13:32:43 2025 |
Liu | Update | Interferometer Simulations | |
| Differences in Fused Silica parameters. |
|
633
|
Tue Aug 26 12:14:24 2025 |
Liu | Update | Interferometer Simulations | Multi-ring FROSTI design for A# with ring heater optimization |
| Multi-ring FROSTI design for A# with ring heater optimization |
|
634
|
Tue Aug 26 12:18:36 2025 |
Michael | Update | Interferometer Simulations | Squeezing Plots for SRC Parameter Space |
| 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. |
|
639
|
Tue Sep 2 12:41:33 2025 |
Liu | Update | Interferometer Simulations | Multi-ring FROSTI design for A# with ring heater optimization |
| [Tyler, Liu]
Ring heater optimization, continued |
|
643
|
Tue Sep 9 12:13:38 2025 |
Liu | Update | Interferometer Simulations | Multi-ring FROSTI optimization for A# with grid search |
| Multi-ring FROSTI optimization based on IFO metrics for A# with grid search |
|
645
|
Tue Sep 16 12:18:09 2025 |
Liu | Update | Interferometer Simulations | Grid search optimization for single-ring FROSTI |
| Grid search optimization for single-ring FROSTI |
|
646
|
Tue Sep 16 12:47:29 2025 |
Xuesi Ma | Update | Interferometer Simulations | Frosti actuation impact analysis |
| Slides |
|
647
|
Tue Sep 23 12:39:29 2025 |
Liu | Update | Interferometer Simulations | Multi-ring FROSTI optimization for A# |
|
|
649
|
Tue Sep 30 12:26:15 2025 |
Liu | Update | Interferometer Simulations | FROSTI optimization for A# |
|
|
652
|
Thu Oct 9 12:18:14 2025 |
Liu | Update | Interferometer Simulations | Multi-ring FROSTI optimization for A# |
|
|
654
|
Thu Oct 16 10:31:20 2025 |
Liu | Update | Interferometer Simulations | Multi-ring FROSTI optimization for A# |
| Two-ring FROSTI grid search with 4D parameter space search and visualization |
|
655
|
Thu Oct 23 10:07:51 2025 |
Liu | Update | Interferometer Simulations | Multi-ring FROSTI optimization for A# |
| 4D parameter space visualization and dimensionality reduction for better optimization |
|
Draft
|
Thu Oct 23 11:34:05 2025 |
Michael | Update | Interferometer Simulations | Updated Exploration into Different SRC Mirror Configurations for Improved Squeezing |
|
|
658
|
Thu Oct 30 11:45:44 2025 |
Liu | Update | Interferometer Simulations | Multi-ring FROSTI optimization for A# |
| Multi-ring FROSTI optimization for A#: dimensionality reduction with PCA vs. t-SNE |
|
660
|
Thu Nov 13 12:39:01 2025 |
Mary | Update | Interferometer Simulations | |
|
|
679
|
Thu Feb 5 13:34:13 2026 |
Cynthia | Update | Interferometer Simulations | Point absorber + miscentering simulation |
|
|
680
|
Thu Feb 5 13:49:31 2026 |
Michael | Update | Interferometer Simulations | Updating Squeezing Mode Matching Logic |
| 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? |
|
681
|
Thu Feb 5 13:59:42 2026 |
Mary | Update | Interferometer Simulations | |
|
|
686
|
Thu Feb 19 12:34:18 2026 |
Cynthia | Update | Interferometer Simulations | Point absorber simulation |
|
|
688
|
Thu Feb 26 20:25:10 2026 |
Cynthia Liang | Update | Interferometer Simulations | Point Absorber+Miscentering Simulation |
|
|
2
|
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 |
|
7
|
Mon Jul 11 14:29:45 2022 |
Jon | Omnistructure | General | HEPA filter installed |
| 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. |
|
16
|
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. |
|
17
|
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. |
|
18
|
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. |
|
19
|
Fri Feb 3 13:04:04 2023 |
shane | Summary | General | clean room particle counts 1/25/23 |
| Clean room count graphs for each zone (as of January 25, 2023) attached |
|
22
|
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. |
|
25
|
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 |
|
27
|
Sat Feb 11 00:17:27 2023 |
Julian | Update | General | Vacuum Chamber Cleaning |
| 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." |
|
28
|
Sat Feb 11 17:09:29 2023 |
Shane | Update | General | clean room particle counts 2/10/23 |
| 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). |
|
29
|
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). |
|
30
|
Fri Feb 17 19:12:39 2023 |
Aiden | Update | General | Clean and Bake batch 3 |
| 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 |
|
31
|
Tue Feb 21 17:51:04 2023 |
Aiden | Summary | General | Clean and Bake batch 4 |
| Bagged and Tagged batch 3 parts by placing no more than two part numbers per bag and taped them with kapton tape and labeled them with their name and part number. Then placed them in the clean room on the work bench.
Cleaned batch 4 parts with liquinox and placed the into the oven for 5 steps;
1. Ramp to 100 degC in 15 minutes.
2. Dwell at 100 degC for 30 minutes.
3. Ramp to 200 degC in 30 minutes.
4. Dwell at 200 degC for 48 hours.
5. Turn off and cool down to room temperature.
To see the specific parts in batch 4 please refer to the Clean and Bake spread sheet on the Richardson lab page: https://docs.google.com/spreadsheets/d/19gnv1q9l64gxnq76KfcXizbqShJfK0ayn2Js1SiAZok/edit#gid=1765414234 |
|
32
|
Thu Feb 23 13:32:55 2023 |
Shane | Update | General | Clean room floor particle counts |
| Here are the counts from the clean room floor today. The counts should be dated- the ones from today (2/23/23) are the last 8 in the chart. The first set of 2 measurements from today were under the table by the clean room entrance, the next two were under the table by the vacuum chamber, the next two were on the floor by the vacuum chamber lid, and the last two were on top of the table for comparison. All measurements were taken using 2 minute sample time. |
|
33
|
Thu Feb 23 21:12:33 2023 |
Julian | Update | General | Vacuum Chamber Cleaning |
| Today I was able to come in and wipe down both sides of the vacuum chamber lid using the regular alcohol wipes and also wipes that were left to dry in the fume hood then saturated with acetone. I managed to get a good amount of the residue off both the inside and outside surfaces of the lid, then did a test wipe of both sides using acetone-soaked wipes; pictures of the wipes are attached below. Once I finished with the lid, I used another acetone wipe to test wipe the inside of the vacuum chamber. The inside is still giving off residue, but very minimally, a photo for this is attached as well. |