Skip to content

Commit 8316993

Browse files
committed
FIX: parallel random value generation not being independent.
1 parent 049276d commit 8316993

File tree

8 files changed

+294
-1104
lines changed

8 files changed

+294
-1104
lines changed

.vscode/settings.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@
136136
"meshgrid",
137137
"Metrum",
138138
"mult",
139+
"multiprocess",
139140
"Mumma",
140141
"NASADEM",
141142
"NDAP",

docs/notebooks/monte_carlo_analysis/monte_carlo_analysis_outputs/monte_carlo_class_example.inputs.txt

Lines changed: 10 additions & 100 deletions
Large diffs are not rendered by default.

docs/notebooks/monte_carlo_analysis/monte_carlo_analysis_outputs/monte_carlo_class_example.outputs.txt

Lines changed: 10 additions & 100 deletions
Large diffs are not rendered by default.

docs/notebooks/monte_carlo_analysis/monte_carlo_class_usage.ipynb

Lines changed: 14 additions & 178 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@
230230
{
231231
"data": {
232232
"application/vnd.jupyter.widget-view+json": {
233-
"model_id": "23586dd854c944e0b673ca4aa2cb5314",
233+
"model_id": "d84184a4d6cd4b308effd022952bd8b0",
234234
"version_major": 2,
235235
"version_minor": 0
236236
},
@@ -507,7 +507,7 @@
507507
"name": "stdout",
508508
"output_type": "stream",
509509
"text": [
510-
"[8927.944495610685, 6524.481738856048, 6559.534235033352, 6489.874776358132, 8171.666908273743]\n"
510+
"[7093.420133006473, 7575.9811666258265, 6351.320054638862, 6123.550282734476, 5674.177733305354]\n"
511511
]
512512
}
513513
],
@@ -776,14 +776,14 @@
776776
},
777777
{
778778
"cell_type": "code",
779-
"execution_count": 15,
779+
"execution_count": 21,
780780
"metadata": {},
781781
"outputs": [
782782
{
783783
"name": "stderr",
784784
"output_type": "stream",
785785
"text": [
786-
"/home/phmb/github/RocketPy/rocketpy/simulation/monte_carlo.py:136: UserWarning: This class is still under testing and some attributes may be changed in next versions\n",
786+
"/home/phmb/github/RocketPy/rocketpy/simulation/monte_carlo.py:132: UserWarning: This class is still under testing and some attributes may be changed in next versions\n",
787787
" warnings.warn(\n"
788788
]
789789
}
@@ -810,134 +810,21 @@
810810
},
811811
{
812812
"cell_type": "code",
813-
"execution_count": 16,
813+
"execution_count": 22,
814814
"metadata": {},
815815
"outputs": [
816816
{
817817
"name": "stdout",
818818
"output_type": "stream",
819819
"text": [
820-
"Starting Monte Carlo analysis\n",
821-
"Number of simulations: 100sis\n",
822-
"Current iteration: 000004 | Average Time per Iteration: 0.902 s | Estimated time left: 84 s\n",
823-
"Current iteration: 000001 | Average Time per Iteration: 0.785 s | Estimated time left: 72 s\n",
824-
"Current iteration: 000005 | Average Time per Iteration: 0.703 s | Estimated time left: 64 s\n",
825-
"Current iteration: 000003 | Average Time per Iteration: 0.630 s | Estimated time left: 57 s\n",
826-
"Current iteration: 000002 | Average Time per Iteration: 0.576 s | Estimated time left: 51 s\n",
827-
"Current iteration: 000000 | Average Time per Iteration: 0.526 s | Estimated time left: 46 s\n",
828-
"Current iteration: 000007 | Average Time per Iteration: 0.674 s | Estimated time left: 59 s\n",
829-
"Current iteration: 000009 | Average Time per Iteration: 0.639 s | Estimated time left: 55 s\n",
830-
"Current iteration: 000006 | Average Time per Iteration: 0.629 s | Estimated time left: 54 s\n",
831-
"Current iteration: 000008 | Average Time per Iteration: 0.608 s | Estimated time left: 51 s\n",
832-
"Current iteration: 000010 | Average Time per Iteration: 0.578 s | Estimated time left: 48 s\n",
833-
"Current iteration: 000011 | Average Time per Iteration: 0.547 s | Estimated time left: 45 s\n",
834-
"Current iteration: 000012 | Average Time per Iteration: 0.697 s | Estimated time left: 57 s\n",
835-
"Current iteration: 000014 | Average Time per Iteration: 0.681 s | Estimated time left: 55 s\n",
836-
"Current iteration: 000013 | Average Time per Iteration: 0.649 s | Estimated time left: 51 s\n",
837-
"Current iteration: 000016 | Average Time per Iteration: 0.643 s | Estimated time left: 50 s\n",
838-
"Current iteration: 000015 | Average Time per Iteration: 0.627 s | Estimated time left: 48 s\n",
839-
"Current iteration: 000017 | Average Time per Iteration: 0.610 s | Estimated time left: 46 s\n",
840-
"Current iteration: 000018 | Average Time per Iteration: 0.691 s | Estimated time left: 52 s\n",
841-
"Current iteration: 000019 | Average Time per Iteration: 0.671 s | Estimated time left: 50 s\n",
842-
"Current iteration: 000021 | Average Time per Iteration: 0.650 s | Estimated time left: 48 s\n",
843-
"Current iteration: 000020 | Average Time per Iteration: 0.629 s | Estimated time left: 45 s\n",
844-
"Current iteration: 000023 | Average Time per Iteration: 0.636 s | Estimated time left: 45 s\n",
845-
"Current iteration: 000022 | Average Time per Iteration: 0.621 s | Estimated time left: 44 s\n",
846-
"Current iteration: 000024 | Average Time per Iteration: 0.652 s | Estimated time left: 45 s\n",
847-
"Current iteration: 000025 | Average Time per Iteration: 0.652 s | Estimated time left: 45 s\n",
848-
"Current iteration: 000026 | Average Time per Iteration: 0.637 s | Estimated time left: 43 s\n",
849-
"Current iteration: 000027 | Average Time per Iteration: 0.621 s | Estimated time left: 41 s\n",
850-
"Current iteration: 000028 | Average Time per Iteration: 0.631 s | Estimated time left: 41 s\n",
851-
"Current iteration: 000029 | Average Time per Iteration: 0.617 s | Estimated time left: 40 s\n",
852-
"Current iteration: 000030 | Average Time per Iteration: 0.661 s | Estimated time left: 42 s\n",
853-
"Current iteration: 000031 | Average Time per Iteration: 0.647 s | Estimated time left: 40 s\n",
854-
"Current iteration: 000032 | Average Time per Iteration: 0.644 s | Estimated time left: 39 s\n",
855-
"Current iteration: 000033 | Average Time per Iteration: 0.629 s | Estimated time left: 38 s\n",
856-
"Current iteration: 000034 | Average Time per Iteration: 0.628 s | Estimated time left: 37 s\n",
857-
"Current iteration: 000035 | Average Time per Iteration: 0.624 s | Estimated time left: 36 s\n",
858-
"Current iteration: 000039 | Average Time per Iteration: 0.682 s | Estimated time left: 39 s\n",
859-
"Current iteration: 000037 | Average Time per Iteration: 0.670 s | Estimated time left: 38 s\n",
860-
"Current iteration: 000036 | Average Time per Iteration: 0.656 s | Estimated time left: 36 s\n",
861-
"Current iteration: 000038 | Average Time per Iteration: 0.642 s | Estimated time left: 35 s\n",
862-
"Current iteration: 000040 | Average Time per Iteration: 0.642 s | Estimated time left: 34 s\n",
863-
"Current iteration: 000041 | Average Time per Iteration: 0.643 s | Estimated time left: 34 s\n",
864-
"Current iteration: 000045 | Average Time per Iteration: 0.703 s | Estimated time left: 36 s\n",
865-
"Current iteration: 000044 | Average Time per Iteration: 0.692 s | Estimated time left: 35 s\n",
866-
"Current iteration: 000042 | Average Time per Iteration: 0.680 s | Estimated time left: 34 s\n",
867-
"Current iteration: 000043 | Average Time per Iteration: 0.670 s | Estimated time left: 32 s\n",
868-
"Current iteration: 000046 | Average Time per Iteration: 0.664 s | Estimated time left: 31 s\n",
869-
"Current iteration: 000047 | Average Time per Iteration: 0.653 s | Estimated time left: 30 s\n",
870-
"Current iteration: 000048 | Average Time per Iteration: 0.706 s | Estimated time left: 32 s\n",
871-
"Current iteration: 000049 | Average Time per Iteration: 0.697 s | Estimated time left: 31 s\n",
872-
"Current iteration: 000050 | Average Time per Iteration: 0.689 s | Estimated time left: 30 s\n",
873-
"Current iteration: 000052 | Average Time per Iteration: 0.690 s | Estimated time left: 30 s\n",
874-
"Current iteration: 000051 | Average Time per Iteration: 0.668 s | Estimated time left: 28 s\n",
875-
"Current iteration: 000053 | Average Time per Iteration: 0.661 s | Estimated time left: 27 s\n",
876-
"Current iteration: 000054 | Average Time per Iteration: 0.711 s | Estimated time left: 28 s\n",
877-
"Current iteration: 000055 | Average Time per Iteration: 0.712 s | Estimated time left: 27 s\n",
878-
"Current iteration: 000057 | Average Time per Iteration: 0.705 s | Estimated time left: 26 s\n",
879-
"Current iteration: 000058 | Average Time per Iteration: 0.699 s | Estimated time left: 25 s\n",
880-
"Current iteration: 000056 | Average Time per Iteration: 0.694 s | Estimated time left: 24 s\n",
881-
"Current iteration: 000059 | Average Time per Iteration: 0.689 s | Estimated time left: 24 s\n",
882-
"Current iteration: 000060 | Average Time per Iteration: 0.723 s | Estimated time left: 24 s\n",
883-
"Current iteration: 000063 | Average Time per Iteration: 0.732 s | Estimated time left: 24 s\n",
884-
"Current iteration: 000061 | Average Time per Iteration: 0.722 s | Estimated time left: 23 s\n",
885-
"Current iteration: 000062 | Average Time per Iteration: 0.715 s | Estimated time left: 22 s\n",
886-
"Current iteration: 000064 | Average Time per Iteration: 0.718 s | Estimated time left: 21 s\n",
887-
"Current iteration: 000065 | Average Time per Iteration: 0.708 s | Estimated time left: 20 s\n",
888-
"Current iteration: 000066 | Average Time per Iteration: 0.711 s | Estimated time left: 19 s\n",
889-
"Current iteration: 000068 | Average Time per Iteration: 0.723 s | Estimated time left: 19 s\n",
890-
"Current iteration: 000067 | Average Time per Iteration: 0.723 s | Estimated time left: 18 s\n",
891-
"Current iteration: 000069 | Average Time per Iteration: 0.716 s | Estimated time left: 17 s\n",
892-
"Current iteration: 000071 | Average Time per Iteration: 0.708 s | Estimated time left: 16 s\n",
893-
"Current iteration: 000070 | Average Time per Iteration: 0.707 s | Estimated time left: 16 s\n",
894-
"Current iteration: 000072 | Average Time per Iteration: 0.702 s | Estimated time left: 15 s\n",
895-
"Current iteration: 000073 | Average Time per Iteration: 0.718 s | Estimated time left: 15 s\n",
896-
"Current iteration: 000076 | Average Time per Iteration: 0.720 s | Estimated time left: 14 s\n",
897-
"Current iteration: 000075 | Average Time per Iteration: 0.715 s | Estimated time left: 13 s\n",
898-
"Current iteration: 000074 | Average Time per Iteration: 0.707 s | Estimated time left: 12 s\n",
899-
"Current iteration: 000077 | Average Time per Iteration: 0.701 s | Estimated time left: 11 s\n",
900-
"Current iteration: 000078 | Average Time per Iteration: 0.713 s | Estimated time left: 11 s\n",
901-
"Current iteration: 000079 | Average Time per Iteration: 0.731 s | Estimated time left: 10 s\n",
902-
"Current iteration: 000080 | Average Time per Iteration: 0.726 s | Estimated time left: 10 s\n",
903-
"Current iteration: 000081 | Average Time per Iteration: 0.724 s | Estimated time left: 9 s \n",
904-
"Current iteration: 000082 | Average Time per Iteration: 0.716 s | Estimated time left: 8 s \n",
905-
"Current iteration: 000083 | Average Time per Iteration: 0.715 s | Estimated time left: 7 s \n",
906-
"Current iteration: 000084 | Average Time per Iteration: 0.723 s | Estimated time left: 7 s \n",
907-
"Current iteration: 000085 | Average Time per Iteration: 0.741 s | Estimated time left: 6 s \n",
908-
"Current iteration: 000086 | Average Time per Iteration: 0.736 s | Estimated time left: 5 s \n",
909-
"Current iteration: 000088 | Average Time per Iteration: 0.735 s | Estimated time left: 5 s \n",
910-
"Current iteration: 000087 | Average Time per Iteration: 0.729 s | Estimated time left: 4 s \n",
911-
"Current iteration: 000090 | Average Time per Iteration: 0.723 s | Estimated time left: 3 s \n",
912-
"Current iteration: 000089 | Average Time per Iteration: 0.723 s | Estimated time left: 2 s \n",
913-
"Current iteration: 000091 | Average Time per Iteration: 0.724 s | Estimated time left: 2 s \n",
914-
"Current iteration: 000092 | Average Time per Iteration: 0.724 s | Estimated time left: 1 s \n",
915-
"Current iteration: 000093 | Average Time per Iteration: 0.723 s | Estimated time left: 0 s \n",
916-
"Current iteration: 000094 | Average Time per Iteration: 0.722 s | Estimated time left: 0 s \n",
917-
"Worker stopped.\n",
918-
"Current iteration: 000096 | Average Time per Iteration: 0.731 s | Estimated time left: 0 s \n",
919-
"Worker stopped.\n",
920-
"Current iteration: 000095 | Average Time per Iteration: 0.739 s | Estimated time left: 0 s \n",
921-
"Worker stopped.\n",
922-
"Current iteration: 000097 | Average Time per Iteration: 0.744 s | Estimated time left: 0 s \n",
923-
"Worker stopped.\n",
924-
"Current iteration: 000098 | Average Time per Iteration: 0.747 s | Estimated time left: 0 s \n",
925-
"Worker stopped.\n",
926-
"Current iteration: 000099 | Average Time per Iteration: 0.754 s | Estimated time left: 0 s \n",
927-
"Worker stopped.\n",
928-
"Joining writer workers.\n",
929-
"--------------------------------------------------------------------------------\n",
930-
"\n",
931-
"All workers joined, simulation complete.\n",
932-
"In total, 100 simulations were performed.\n",
933-
"Simulation took 75.49 seconds to run.\n",
820+
"Completed 10 iterations. Total wall time: 7.4 s \n",
934821
"Results saved to /home/phmb/github/RocketPy/docs/notebooks/monte_carlo_analysis/monte_carlo_analysis_outputs/monte_carlo_class_example.outputs.txt\n"
935822
]
936823
}
937824
],
938825
"source": [
939826
"test_dispersion.simulate(\n",
940-
" number_of_simulations=100,\n",
827+
" number_of_simulations=10,\n",
941828
" append=False,\n",
942829
" parallel=True,\n",
943830
" n_workers=None,\n",
@@ -971,79 +858,28 @@
971858
},
972859
{
973860
"cell_type": "code",
974-
"execution_count": 17,
861+
"execution_count": null,
975862
"metadata": {},
976-
"outputs": [
977-
{
978-
"name": "stdout",
979-
"output_type": "stream",
980-
"text": [
981-
"A total of 100 simulations results were loaded from the following output file: monte_carlo_analysis_outputs/monte_carlo_class_example.outputs.txt\n",
982-
"\n",
983-
"The following input file was imported: monte_carlo_analysis_outputs/monte_carlo_class_example.inputs.txt\n",
984-
"The following error file was imported: monte_carlo_analysis_outputs/monte_carlo_class_example.errors.txt\n"
985-
]
986-
}
987-
],
863+
"outputs": [],
988864
"source": [
989865
"# You only need to import results if you did not run the simulations\n",
990866
"test_dispersion.import_results()"
991867
]
992868
},
993869
{
994870
"cell_type": "code",
995-
"execution_count": 18,
871+
"execution_count": null,
996872
"metadata": {},
997-
"outputs": [
998-
{
999-
"data": {
1000-
"text/plain": [
1001-
"100"
1002-
]
1003-
},
1004-
"execution_count": 18,
1005-
"metadata": {},
1006-
"output_type": "execute_result"
1007-
}
1008-
],
873+
"outputs": [],
1009874
"source": [
1010875
"test_dispersion.num_of_loaded_sims"
1011876
]
1012877
},
1013878
{
1014879
"cell_type": "code",
1015-
"execution_count": 19,
880+
"execution_count": null,
1016881
"metadata": {},
1017-
"outputs": [
1018-
{
1019-
"name": "stdout",
1020-
"output_type": "stream",
1021-
"text": [
1022-
"Monte Carlo Simulation by RocketPy\n",
1023-
"Data Source: monte_carlo_analysis_outputs/monte_carlo_class_example\n",
1024-
"Number of simulations: 100\n",
1025-
"Results: \n",
1026-
"\n",
1027-
" Parameter Mean Std. Dev.\n",
1028-
"------------------------------------------------------------\n",
1029-
" out_of_rail_velocity 26.043 2.053\n",
1030-
" frontal_surface_wind 0.000 0.000\n",
1031-
" y_impact 410.468 61.706\n",
1032-
" impact_velocity -5.275 0.060\n",
1033-
" max_mach_number 0.872 0.124\n",
1034-
" apogee_time 25.665 1.856\n",
1035-
" apogee_y 351.443 55.161\n",
1036-
" lateral_surface_wind 0.000 0.000\n",
1037-
" apogee 3442.128 587.869\n",
1038-
" apogee_x 472.614 84.688\n",
1039-
" out_of_rail_time 0.356 0.023\n",
1040-
"out_of_rail_stability_margin 2.682 0.058\n",
1041-
" initial_stability_margin 2.621 0.058\n",
1042-
" t_final 309.069 30.988\n",
1043-
" x_impact 551.631 94.169\n"
1044-
]
1045-
}
1046-
],
882+
"outputs": [],
1047883
"source": [
1048884
"test_dispersion.prints.all()"
1049885
]
@@ -1084,7 +920,7 @@
1084920
},
1085921
{
1086922
"cell_type": "code",
1087-
"execution_count": 22,
923+
"execution_count": null,
1088924
"metadata": {},
1089925
"outputs": [],
1090926
"source": [

0 commit comments

Comments
 (0)