06 October 2025 11:45:25 AM ziggurat_openmp(): C++ version Number of processors = 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.0644004 0.0637158 RATE: 155.279 156.947 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.0660511 0.0660511 0 Efficiency check: Computing values in parallel should be faster:' Sequential Parallel TIME: 0.291125 0.317786 RATE: 34.3495 31.4677 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 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.158156 0.146674 RATE: 63.2286 68.1784 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 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.773968 0.767553 RATE: 12.9204 13.0284 ziggurat_openmp(): Normal end of execution. 06 October 2025 11:45:27 AM 06 October 2025 11:45:27 AM ziggurat_openmp(): C++ version Number of processors = 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.0639432 0.0330172 RATE: 156.389 302.872 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 1 0.617119 0.617119 0 Efficiency check: Computing values in parallel should be faster:' Sequential Parallel TIME: 0.31704 0.154311 RATE: 31.5417 64.8042 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.97773 0.97773 0 1 -1.07051 -1.07051 0 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.149113 0.0744414 RATE: 67.0634 134.334 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 1 0.605476 0.605476 0 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.720892 0.372741 RATE: 13.8717 26.8283 ziggurat_openmp(): Normal end of execution. 06 October 2025 11:45:29 AM 06 October 2025 11:45:29 AM ziggurat_openmp(): C++ version Number of processors = 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.0603182 0.0158232 RATE: 165.787 631.982 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 1 0.52517 0.52517 0 2 0.130314 0.130314 0 3 0.944491 0.944491 0 Efficiency check: Computing values in parallel should be faster:' Sequential Parallel TIME: 0.288381 0.0752266 RATE: 34.6764 132.932 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 1 0.314686 0.314686 0 2 -0.989801 -0.989801 0 3 -1.48772 -1.48772 0 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.143308 0.0392778 RATE: 69.7795 254.597 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 1 0.162032 0.162032 0 2 0.125027 0.125027 0 3 0.264089 0.264089 0 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.719148 0.189273 RATE: 13.9053 52.8338 ziggurat_openmp(): Normal end of execution. 06 October 2025 11:45:31 AM 06 October 2025 11:45:31 AM ziggurat_openmp(): C++ version Number of processors = 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.064485 0.0148105 RATE: 155.075 675.195 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 1 0.196424 0.196424 0 2 0.538894 0.538894 0 3 0.596126 0.596126 0 4 0.373859 0.373859 0 5 0.455788 0.455788 0 6 0.398628 0.398628 0 7 0.809289 0.809289 0 Efficiency check: Computing values in parallel should be faster:' Sequential Parallel TIME: 0.282924 0.0478379 RATE: 35.3452 209.039 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.33701 -1.33701 0 1 1.76707 1.76707 0 2 0.67303 0.67303 0 3 -0.0489069 -0.0489069 0 4 -0.393083 -0.393083 0 5 -0.447175 -0.447175 0 6 -0.0819305 -0.0819305 0 7 -0.861219 -0.861219 0 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.146029 0.0329779 RATE: 68.4797 303.233 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.33056 1.33056 0 1 0.276245 0.276245 0 2 0.123901 0.123901 0 3 0.34829 0.34829 0 4 0.348777 0.348777 0 5 0.145308 0.145308 0 6 0.669387 0.669387 0 7 0.877301 0.877301 0 Efficiency check: Computing values in parallel should be faster: Sequential Parallel TIME: 0.718369 0.132735 RATE: 13.9204 75.3384 ziggurat_openmp(): Normal end of execution. 06 October 2025 11:45:32 AM