Dear STKO Team ,
Model Description
I have a model of a 4-story building on which I would like to run Time History Analysis (THA) simultaneously in three directions. My plan is to conduct 500 analyses in total. While checking the forum, I found a helpful file for parameterization. However, it seems that the available codes divide the number of analyses across processors. In my situation, this would require 500 processors, but my computer only has the capacity for four processors.
Problem
Instead of running each analysis on a single processor, I want to run one dynamic analysis (in three directions) on several processors. Once this is finished, the algorithm should shift to the second analysis case, load the ground motions (GMs) in the three directions, and continue this process until all 500 analyses are completed.
However, I am facing an issue with recording the acceleration and displacement of each node-story. I am using recorders, but I believe this will cause a problem because, as discussed in the forum, each processor will try to write to the same folder simultaneously.
Could you please guide me on how to solve this problem? I have attached my current model along with the Time Histories.
your feedback will be highly appreciated !
Resolving Recorder Issues in Multi-Processor Time History Analysis
-
kesavapraba
- Posts: 468
- Joined: Sat Mar 28, 2020 2:25 pm
Re: Resolving Recorder Issues in Multi-Processor Time History Analysis
Hi,
To confirm, your plan is to partition the model and use OpenSeesMP for a single earthquake excitation at a time. You'd then repeat this for each earthquake, running them sequentially rather than simultaneously. Is this correct?
To confirm, your plan is to partition the model and use OpenSeesMP for a single earthquake excitation at a time. You'd then repeat this for each earthquake, running them sequentially rather than simultaneously. Is this correct?
:: With best wishes ::
Prabakaran Kesavan
Prabakaran Kesavan
Re: Resolving Recorder Issues in Multi-Processor Time History Analysis
Hi Sir,
Thank you for your response,
Yes that is true . and this way i want to perform my 500 analysis (3 directional) .
As i said in my original post , i am only interested on Node recorders :
recorder Node -file "R_S1_disp_0.out" -node 743 -dof 1 2 3 disp
recorder Node -file "R_S2_disp_0.out" -node 1111 -dof 1 2 3 disp
recorder Node -file "R_S3_disp_0.out" -node 1112 -dof 1 2 3 disp
recorder Node -file "R_S4_disp_0.out" -node 18 -dof 1 2 3 disp
recorder Node -file "R_S1_acc_0.out" -node 743 -dof 1 2 3 accel
recorder Node -file "R_S2_acc_0.out" -node 1111 -dof 1 2 3 accel
recorder Node -file "R_S3_acc_0.out" -node 1112 -dof 1 2 3 accel
recorder Node -file "R_S4_acc_0.out" -node 18 -dof 1 2 3 accel
recorder Node -file "Base_disp_0.out" -node 730 -dof 1 2 3 disp
recorder Node -file "Base_acc_0.out" -node 730 -dof 1 2 3 accel
so at the end i will have 500 set of this file where each set represent the results of a single record.
Thank you ,
Thank you for your response,
Yes that is true . and this way i want to perform my 500 analysis (3 directional) .
As i said in my original post , i am only interested on Node recorders :
recorder Node -file "R_S1_disp_0.out" -node 743 -dof 1 2 3 disp
recorder Node -file "R_S2_disp_0.out" -node 1111 -dof 1 2 3 disp
recorder Node -file "R_S3_disp_0.out" -node 1112 -dof 1 2 3 disp
recorder Node -file "R_S4_disp_0.out" -node 18 -dof 1 2 3 disp
recorder Node -file "R_S1_acc_0.out" -node 743 -dof 1 2 3 accel
recorder Node -file "R_S2_acc_0.out" -node 1111 -dof 1 2 3 accel
recorder Node -file "R_S3_acc_0.out" -node 1112 -dof 1 2 3 accel
recorder Node -file "R_S4_acc_0.out" -node 18 -dof 1 2 3 accel
recorder Node -file "Base_disp_0.out" -node 730 -dof 1 2 3 disp
recorder Node -file "Base_acc_0.out" -node 730 -dof 1 2 3 accel
so at the end i will have 500 set of this file where each set represent the results of a single record.
Thank you ,
Re: Resolving Recorder Issues in Multi-Processor Time History Analysis
There is a way to do this.
The idea is to pack your whole analysis instead a for loop, and the loop index will be used to parameterized the ground motion.
However, there is an issue with using OpenSeesMP. You said you want to partition your model, but at the same time you want to use plain opensees recorders. They do not automatically work with OpenSeesMP, and you have to figure out what node is on what processor.
Same thing for the piece of code where you apply the ground motion. You manually apply it on nodes, but with OpenSeesMP you need to do it based on the processor.
Are you sure you want to use OpenSeesMP?
The idea is to pack your whole analysis instead a for loop, and the loop index will be used to parameterized the ground motion.
However, there is an issue with using OpenSeesMP. You said you want to partition your model, but at the same time you want to use plain opensees recorders. They do not automatically work with OpenSeesMP, and you have to figure out what node is on what processor.
Same thing for the piece of code where you apply the ground motion. You manually apply it on nodes, but with OpenSeesMP you need to do it based on the processor.
Are you sure you want to use OpenSeesMP?
Re: Resolving Recorder Issues in Multi-Processor Time History Analysis
Thank you for your response.
I want to use OpenSees MP because I need faster results. If I use a single processor (OpenSees SP), it will take significantly longer, and I might have to wait for weeks to complete 500 analyses. Another solution is to run the model using multiple processors; in my case, I have 8 processors, so running 500 analyses would mean manually dividing the workload 62 times. However, I am encountering issues even with this method. I ran 8 analysis cases on 8 processors, and although the analysis completed 100%, some processors terminated while others did not. As a result, I had to wait several hours even after PowerShell showed 100% completion, with some processors still not terminating. I have posted about this issue in another post.
viewtopic.php?f=45&t=2937
I am open to your ideas or suggestions for this case,
thank you
I want to use OpenSees MP because I need faster results. If I use a single processor (OpenSees SP), it will take significantly longer, and I might have to wait for weeks to complete 500 analyses. Another solution is to run the model using multiple processors; in my case, I have 8 processors, so running 500 analyses would mean manually dividing the workload 62 times. However, I am encountering issues even with this method. I ran 8 analysis cases on 8 processors, and although the analysis completed 100%, some processors terminated while others did not. As a result, I had to wait several hours even after PowerShell showed 100% completion, with some processors still not terminating. I have posted about this issue in another post.
viewtopic.php?f=45&t=2937
I am open to your ideas or suggestions for this case,
thank you
Re: Resolving Recorder Issues in Multi-Processor Time History Analysis
I answered there.viewtopic.php?f=45&t=2937
Another solution is not to use OpenSeesMP at all.I am open to your ideas or suggestions for this case,
You can use a python script to spawn processes (sequential opensees), 8 at a time.
In this way, since as discussed in the other post some analyses will last longer than others because the GM is longer, you can also implement a logic to launch at most 8 processes at a time, but if one finishes before the others you can run another one.