06 October 2025 01:24:31 AM ziggurat_openmp(): C/OpenMP version Number of processors available = 8 Number of threads = 1 TEST01 SHR3_SEEDED computes random integers. Since the output is completely determined by the input value of SEED, we can run in parallel as long as we make an array of seeds. The number of threads is 1 Correctness check: Computing values sequentially should reach the same result as doing it in parallel: THREAD Sequential Parallel Difference 0 -1863796367 -1863796367 0 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.061993 0.060690 RATE: 161.308795 164.771514 TEST02 R4_UNI computes uniformly random single precision real values. Since the output is completely determined by the input value of SEED, we can run in parallel as long as we make an array of seeds. The number of threads is 1 Correctness check: Computing values sequentially should reach the same result as doing it in parallel: THREAD Sequential Parallel Difference 0 0.066051 0.066051 0.000000 Efficiency check: Computing values in parallel should be faster:' Sequential Parallel TIME: 0.288387 0.288429 RATE: 34.675627 34.670615 TEST03 R4_NOR computes normal random single precision real values. Since the output is completely determined by the input value of SEED and the tables, we can run in parallel as long as we make an array of seeds and share the tables. The number of threads is 1 Correctness check: Computing values sequentially should reach the same result as doing it in parallel: THREAD Sequential Parallel Difference 0 -0.326194 -0.326194 0.000000 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.132612 0.132915 RATE: 75.407892 75.236085 TEST04 R4_EXP computes exponential random single precision real values. Since the output is completely determined by the input value of SEED and the tables, we can run in parallel as long as we make an array of seeds and share the tables. The number of threads is 1 Correctness check: Computing values sequentially should reach the same result as doing it in parallel: THREAD Sequential Parallel Difference 0 0.113969 0.113969 0.000000 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.732596 0.768943 RATE: 13.650091 13.004857 ziggurat_openmp(): Normal end of execution. 06 October 2025 01:24:33 AM 06 October 2025 01:24:33 AM ziggurat_openmp(): C/OpenMP version Number of processors available = 8 Number of threads = 2 TEST01 SHR3_SEEDED computes random integers. Since the output is completely determined by the input value of SEED, we can run in parallel as long as we make an array of seeds. The number of threads is 2 Correctness check: Computing values sequentially should reach the same result as doing it in parallel: THREAD Sequential Parallel Difference 0 1249912034 1249912034 0 1 503020437 503020437 0 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.065425 0.032674 RATE: 152.847509 306.056740 TEST02 R4_UNI computes uniformly random single precision real values. Since the output is completely determined by the input value of SEED, we can run in parallel as long as we make an array of seeds. The number of threads is 2 Correctness check: Computing values sequentially should reach the same result as doing it in parallel: THREAD Sequential Parallel Difference 0 0.791018 0.791018 0.000000 1 0.617119 0.617119 0.000000 Efficiency check: Computing values in parallel should be faster:' Sequential Parallel TIME: 0.298138 0.152092 RATE: 33.541489 65.749665 TEST03 R4_NOR computes normal random single precision real values. Since the output is completely determined by the input value of SEED and the tables, we can run in parallel as long as we make an array of seeds and share the tables. The number of threads is 2 Correctness check: Computing values sequentially should reach the same result as doing it in parallel: THREAD Sequential Parallel Difference 0 0.977730 0.977730 0.000000 1 -1.070512 -1.070512 0.000000 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.134401 0.069874 RATE: 74.403969 143.114760 TEST04 R4_EXP computes exponential random single precision real values. Since the output is completely determined by the input value of SEED and the tables, we can run in parallel as long as we make an array of seeds and share the tables. The number of threads is 2 Correctness check: Computing values sequentially should reach the same result as doing it in parallel: THREAD Sequential Parallel Difference 0 0.332266 0.332266 0.000000 1 0.605476 0.605476 0.000000 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.738419 0.397778 RATE: 13.542441 25.139623 ziggurat_openmp(): Normal end of execution. 06 October 2025 01:24:35 AM 06 October 2025 01:24:35 AM ziggurat_openmp(): C/OpenMP version Number of processors available = 8 Number of threads = 4 TEST01 SHR3_SEEDED computes random integers. Since the output is completely determined by the input value of SEED, we can run in parallel as long as we make an array of seeds. The number of threads is 4 Correctness check: Computing values sequentially should reach the same result as doing it in parallel: THREAD Sequential Parallel Difference 0 -1669655539 -1669655539 0 1 108105747 108105747 0 2 -1587791136 -1587791136 0 3 1909075432 1909075432 0 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.065018 0.016316 RATE: 153.804553 612.905084 TEST02 R4_UNI computes uniformly random single precision real values. Since the output is completely determined by the input value of SEED, we can run in parallel as long as we make an array of seeds. The number of threads is 4 Correctness check: Computing values sequentially should reach the same result as doing it in parallel: THREAD Sequential Parallel Difference 0 0.111253 0.111253 0.000000 1 0.525170 0.525170 0.000000 2 0.130314 0.130314 0.000000 3 0.944491 0.944491 0.000000 Efficiency check: Computing values in parallel should be faster:' Sequential Parallel TIME: 0.312840 0.077537 RATE: 31.965210 128.971269 TEST03 R4_NOR computes normal random single precision real values. Since the output is completely determined by the input value of SEED and the tables, we can run in parallel as long as we make an array of seeds and share the tables. The number of threads is 4 Correctness check: Computing values sequentially should reach the same result as doing it in parallel: THREAD Sequential Parallel Difference 0 -0.828252 -0.828252 0.000000 1 0.314686 0.314686 0.000000 2 -0.989801 -0.989801 0.000000 3 -1.487724 -1.487724 0.000000 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.145558 0.036490 RATE: 68.700934 274.049547 TEST04 R4_EXP computes exponential random single precision real values. Since the output is completely determined by the input value of SEED and the tables, we can run in parallel as long as we make an array of seeds and share the tables. The number of threads is 4 Correctness check: Computing values sequentially should reach the same result as doing it in parallel: THREAD Sequential Parallel Difference 0 0.427391 0.427391 0.000000 1 0.162032 0.162032 0.000000 2 0.125027 0.125027 0.000000 3 0.264089 0.264089 0.000000 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.812217 0.232936 RATE: 12.311985 42.930220 ziggurat_openmp(): Normal end of execution. 06 October 2025 01:24:37 AM 06 October 2025 01:24:37 AM ziggurat_openmp(): C/OpenMP version Number of processors available = 8 Number of threads = 8 TEST01 SHR3_SEEDED computes random integers. Since the output is completely determined by the input value of SEED, we can run in parallel as long as we make an array of seeds. The number of threads is 8 Correctness check: Computing values sequentially should reach the same result as doing it in parallel: THREAD Sequential Parallel Difference 0 2066176573 2066176573 0 1 -1303848666 -1303848666 0 2 167050157 167050157 0 3 412856606 412856606 0 4 -541773661 -541773661 0 5 -189888513 -189888513 0 6 -435391081 -435391081 0 7 1328385438 1328385438 0 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.072776 0.021982 RATE: 137.407012 454.908451 TEST02 R4_UNI computes uniformly random single precision real values. Since the output is completely determined by the input value of SEED, we can run in parallel as long as we make an array of seeds. The number of threads is 8 Correctness check: Computing values sequentially should reach the same result as doing it in parallel: THREAD Sequential Parallel Difference 0 0.981069 0.981069 0.000000 1 0.196424 0.196424 0.000000 2 0.538894 0.538894 0.000000 3 0.596126 0.596126 0.000000 4 0.373859 0.373859 0.000000 5 0.455788 0.455788 0.000000 6 0.398628 0.398628 0.000000 7 0.809289 0.809289 0.000000 Efficiency check: Computing values in parallel should be faster:' Sequential Parallel TIME: 0.315395 0.049156 RATE: 31.706294 203.433187 TEST03 R4_NOR computes normal random single precision real values. Since the output is completely determined by the input value of SEED and the tables, we can run in parallel as long as we make an array of seeds and share the tables. The number of threads is 8 Correctness check: Computing values sequentially should reach the same result as doing it in parallel: THREAD Sequential Parallel Difference 0 -1.337011 -1.337011 0.000000 1 1.767073 1.767073 0.000000 2 0.673030 0.673030 0.000000 3 -0.048907 -0.048907 0.000000 4 -0.393083 -0.393083 0.000000 5 -0.447175 -0.447175 0.000000 6 -0.081930 -0.081930 0.000000 7 -0.861219 -0.861219 0.000000 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.140596 0.030075 RATE: 71.125567 332.501636 TEST04 R4_EXP computes exponential random single precision real values. Since the output is completely determined by the input value of SEED and the tables, we can run in parallel as long as we make an array of seeds and share the tables. The number of threads is 8 Correctness check: Computing values sequentially should reach the same result as doing it in parallel: THREAD Sequential Parallel Difference 0 1.330563 1.330563 0.000000 1 0.276245 0.276245 0.000000 2 0.123901 0.123901 0.000000 3 0.348290 0.348290 0.000000 4 0.348777 0.348777 0.000000 5 0.145308 0.145308 0.000000 6 0.669387 0.669387 0.000000 7 0.877301 0.877301 0.000000 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.816061 0.139987 RATE: 12.253988 71.435268 ziggurat_openmp(): Normal end of execution. 06 October 2025 01:24:38 AM