並列計算について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
宮本

並列計算について

#1

投稿記事 by 宮本 » 13年前

昨日の講義で2つの1次元配列の内積を求めるプログラムを作ったのですが、応用として、各スレッドで部分内積(sm)を求め、その部分内積を集計した内積(sum)を求められるプログラムを作り、OMPを用いて逐次と並列での速度比較をしてみなさいと言われました。(このプログラムを無理に用いる必要はないそうです…)
OpenMPについては、昨日初めてその存在を知り全くの知識不足で、どこをどのようにすれば並列化し、速度を求めればいいかわかりません。
長々とすみませんが、どなたかよろしければご教示ください。

コード:

#include<stdio.h>
double a[3]={ 1.0, 2.0, 3.0};
double b[3]={ 1.0, 2.0, 3.0};

int main(void)
{    
int i;
double sum;
printf("a=(%f, %f, %f)\n",a[0],a[1],a[2]);
printf("b=(%f, %f, %f)\n",b[0],b[1],b[2]);
 
sum=0.0;
for(i=0;i<3;i++)        
sum+=a[i]*b[i];
printf("内積=%f\n",sum);
 
return 0;
}

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: 並列計算について

#2

投稿記事 by h2so5 » 13年前

OpenMPで検索すれば簡単なサンプルコードが見つかるのでまずはそれを参考にしてみてはどうでしょうか。
あと、コンパイラは何を使っていますか?

宮本

Re: 並列計算について

#3

投稿記事 by 宮本 » 13年前

自分の使用機種はiMacを使っています。
コンパイラはXcodeをインストールしてあるので、一緒にインストールされているのを使用しています。

閉鎖

“C言語何でも質問掲示板” へ戻る