こんにちは、私は次のように動作する MPI クイックソート プログラムを作成しました。
私のクラスターでは、「マスター」は整数データを分割し、これらを「スレーブ ノード」に送信します。スレーブ ノードで受信すると、各スレーブは個別の並べ替え操作を実行し、並べ替えられたデータをマスターに送り返します。今私の問題は、スレーブにハイパースレッディングを導入することに興味があることです。
マスターからのデータがあります
- sub (配列を表す)
- count (配列のサイズ)
ここで、Pthreads を次のように初期化しました。
num_threads=12.
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
for (i = 0; i < num_pthreads; i++) {
if (pthread_create(&thread[i], &attr, new_thread, (void *) &sub[i]))
{
printf("error creating a new thread \n");
exit(1);
}
else
{
printf(" threading is successful %d at node %d \n \t ",i,rank);
}
そして新しいスレッド関数で
void * new_thread(int *sub)
{
quick_sort(sub,0, count-1);
}
return(0);
}
自分のやり方が正しいかどうかわかりません。誰でもこの問題を解決できますか?