xcode 6.0 でのopenmp
xcode6.0で
#include "stdio.h"
#include <omp.h>
int main()
{
int nThreads = 0;
nThreads = omp_get_thread_num();
printf("Thread is %d \n",nThreads);
int i,j,k,n=0;
// DZÇÃï∂Ç…ÇÊÇËíºå„ÇÃforï∂Ç™É}ÉãÉ`ÉXÉåÉbÉhé¿çsÇ≥ÇÍÇÈÅB
// ÉlÉXÉgÇ≥ÇÍÇΩì‡ë§ÇÃïœêîjÇ…ÇÊÇÈÉãÅ[ÉvÇÕÉ}ÉãÉ`ÉXÉåÉbÉhâªÇ≥ÇÍǻǢÅB
// ÇΩÇæÇµÅAïœêîjÇprivate êÈåæÇµÇƒÇ®Ç©Ç»Ç¢Ç∆ï°êîÇÃÉXÉåÉbÉhÇ≈ïœêîÇ™ã§óLÇ≥ÇÍÇÈÇΩÇflÅA
// ÉãÅ[ÉvâÒêîÇ™ìKêÿÇ≈Ç»Ç≠Ç»ÇÈÅB
// ompï∂ì‡ïîÇ≈ÉãÅ[ÉvÇ∑ÇÈèÍçáÇÕÅAã§óLǵǃLJó«Ç¢ïœêîÇ©ÅAå¬ï âªÇµÇ»ÇØÇÍnjǻÇÁǻǢïœêîÇ©ÅAãÊï Ç™ïKóv
// ëçòaÇãÅÇflÇÈǻǫÅAç≈å„Ç…åãâ ÇåãçáÇµÇ»ÇØÇÍnjǻÇÁǻǢïœêîÇÕreductionÇ≈éwíËÇ∑ÇÈ
// ǪÇÃç€ÅAäeÉXÉåÉbÉhÇÃåãâ ÇÇ«ÇÃÇÊǧDžìùçáÇ∑ÇÈÇ©Ç()ÇÃëOÇ…éwíËǵÅA:ÇÃå„Ç…ëŒâûÇ∑ÇÈïœêîÇèëÇ≠
// ë´ÇµéZ(+)ÅAä|ÇØéZ(*)ÇÃëºÅAò_óùòaÅAò_óùêœÇ»Ç«Ç‡óòópâ¬î\
#pragma omp parallel for private (i,j,k) reduction (+:n)
for (i=0;i<200000;i++){
// åªç›é¿çsíÜÇÃÉXÉåÉbÉhî‘çÜÇéÊìæ
nThreads = omp_get_thread_num();
k=0;
for (j=0;j<100000000;j++){
k=k+1;
}
n=n+k/j;
printf("Thread is %d (i=%d,n=%d,j=%d,k=%d)\n",nThreads,i,n,j,k);
}
// reductionÇ≈ëSÉXÉåÉbÉhÇÃëçòaÇéÊǡǃǢÇÈÇÃÇ≈ÅAÉVÉìÉOÉãÉXÉåÉbÉhÇÃåvéZåãâ Ç∆ìØÇ∂ëçòaÇ…Ç»ÇÈ
printf("Result n=%d\n",n);
// Ç±ÇøÇÁÇÕ ï¿óÒâªéwé¶ëŒè€ÇÃÅ@forï∂ÇÃäOÇ»ÇÃÇ≈ÅAÉVÉìÉOÉãÉXÉåÉbÉhé¿çs
//ãtÇ…åæÇ¶ÇŒÅAè„ãLÇÃï\ãLÇÃNjNjÇ≈ÇÕÅAompÉRÉ}ÉìÉhÇ™î≠ê∂Ç∑ÇÈÇΩÇ—Ç…ÉXÉåÉbÉhÇçÏê¨Ç∑ÇÈÇÃÇ≈
//ìÆçÏÉRÉXÉgÇ™ëÂÇ´Ç≠Ç»ÇÈÅBÉXÉåÉbÉhÇécǵë±ÇØÇÈÇ…ÇÕï ÇÃï˚ñ@Ç™ïKóvÅB
n=0;
for (i=0;i<200000;i++){
nThreads = omp_get_thread_num();
k=0;
for (j=0;j<100000000;j++){
k=k+1;
}
n=n+k/j;
printf("Thread is %d (i=%d,n=%d)\n",nThreads,i,n);
}
return0;
}
以上のプログラミングを通したいのですがうまくできません。
xcodeでopenmpをつかうことはできないのでしょうか?
よろしくお願いします。
MacBook Air, OS X Yosemite (10.10.3)