<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi,<div class=""><br class=""></div><div class="">Not sure this is totally relevent to MacPorts Users who usually discuss install problems, but I have a weird one here and you might help!</div><div class=""><br class=""></div><div class="">Testing OpenMP on my Mac, I find that the output is slightly random when running in parallel mode while it is correct in sequential mode.</div><div class="">the same test on an Ubuntu machine did not reveal the same problem.</div><div class=""><br class=""></div><div class="">I use Macport gcc7.3 :</div><div class=""><br class=""></div><div class="">OpenMP>gcc --version<br class="">gcc (MacPorts gcc7 7.3.0_0) 7.3.0<br class=""><br class="">I compile with or without the -fopenmp option and in parallel mode I get this :</div><div class=""><br class=""></div><div class="">OpenMP>gcc -fopenmp -o essai_par 2boucles.c<br class="">OpenMP>essai_par<br class="">a[0,1] 2, a[99,199] 20000, a[999,999] 1000000<br class="">b[1] 2, b[100] 200, b[999] 1998<br class="">OpenMP>essai_par<br class="">a[0,1] 2, a[99,199] 20000, a[999,999] 1000000<br class="">b[1] 2, b[100] 200, b[999] 1998<br class="">OpenMP>essai_par<br class="">a[0,1] 2, a[99,199] 20000, a[999,999] 1000000<br class="">b[1] 2, b[100] 200, b[999] 1998<br class="">OpenMP>essai_par<br class="">a[0,1] 2, a[99,199] 20000, a[999,999] 1000000<br class="">b[1] 2, b[100] 200, b[999] 1998<br class="">OpenMP>essai_par<br class="">a[0,1] 2, a[99,199] 20000, a[999,999] 1000000<br class="">b[1] 2, b[100] 200, b[999] 1998<br class="">OpenMP>essai_par<br class=""><font color="#ff2600" class="">a[0,1] 0,</font> a[99,199] 20000, a[999,999] 1000000<br class="">b[1] 2, b[100] 200, b[999] 1998</div><div class=""><div class="">OpenMP>essai_par</div><div class="">a[0,1] 2, <font color="#ff2600" class="">a[99,199] 0</font>, a[999,999] 1000000</div><div class="">b[1] 2, b[100] 200, b[999] 1998</div></div><div class=""><br class=""></div><div class="">On the 6th call, I got zero instead of 2, on the 7th call, I got zero instead of 20000. No need to say this is totally random. I use the #pragma parallel private</div><div class="">I also tried with the #pragma parallel default(shared) and I got this :</div><div class=""><br class=""></div><div class=""><div class="">OpenMP>gcc -fopenmp -o essai_pardef 2boucles.c</div><div class="">OpenMP>essai_pardef</div><div class="">a[0,1] 2,<font color="#ff2600" class=""> a[99,199] 0</font>, a[999,999] 1000000</div><div class="">b[1] 2, b[100] 200, b[999] 1998</div><div class="">OpenMP>essai_pardef</div><div class=""><font color="#ff2600" class="">a[0,1] 0,</font> a[99,199] 0, a[999,999] 1000000</div><div class="">b[1] 2, b[100] 200, b[999] 1998</div><div class="">OpenMP>essai_pardef</div><div class="">a[0,1] 2, a[99,199] 20000, a[999,999] 1000000</div><div class="">b[1] 2, b[100] 200, b[999] 1998</div><div class="">OpenMP>essai_pardef</div><div class="">a[0,1] 2, a[99,199] 20000, a[999,999] 1000000</div><div class="">b[1] 2, b[100] 200, b[999] 1998</div><div class="">OpenMP>essai_pardef</div><div class="">a[0,1] 2, a[99,199] 20000, a[999,999] 1000000</div><div class="">b[1] 2, b[100] 200, b[999] 1998</div></div><div class=""><br class=""></div><div class="">got the first two wrong, then a few correct ones.</div><div class=""><br class=""></div><div class="">I returned to gcc5.5, just in case 7.3 would be faulty :</div><div class=""><br class=""></div><div class="">OpenMP>gcc --version</div><div class=""><div class="">gcc (MacPorts gcc5 5.5.0_0) 5.5.0</div><div class=""><div class="">OpenMP>gcc -fopenmp -o essai_pardef 2boucles.c</div><div class="">OpenMP>essai_pardef</div><div class=""><font color="#ff2600" class="">a[0,1] 1, a[99,199] 0</font>, a[999,999] 1000000</div><div class="">b[1] 2, b[100] 200, b[999] 1998</div><div class="">OpenMP>essai_pardef</div><div class="">a[0,1] 2, a[99,199] 20000, a[999,999] 1000000</div><div class="">b[1] 2, b[100] 200, b[999] 1998</div><div class="">OpenMP>essai_pardef</div><div class="">a[0,1] 2, <font color="#ff2600" class="">a[99,199] 0</font>, a[999,999] 1000000</div><div class="">b[1] 2, b[100] 200, b[999] 1998</div><div class="">OpenMP>essai_pardef</div><div class="">a[0,1] 2, <font color="#ff2600" class="">a[99,199] 0,</font> a[999,999] 1000000</div><div class="">b[1] 2, b[100] 200, b[999] 1998</div></div><div class=""><br class=""></div><div class="">and it looks even worse.</div><div class=""><br class=""></div><div class=""><div class="">Is it a problem with the Mac (MBP, OS X 10.12.6) or a problem with the MP gcc ?</div><div class=""><br class=""></div><div class=""></div></div><div class="">I attach the test program if one wants to test it on another Mac machine.</div><div class=""><br class=""></div><div class="">Laurent</div><div class=""><br class=""></div><div class=""></div></div></body></html>