⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nxtval-simple.c

📁 The example for Boor USING MPI2
💻 C
字号:
extern int MPE_COUNTER_KEYVAL;int MPE_Counter_nxtval( MPI_Win counter_win, int *value ){    MPI_Group group;    int       rank, size, myval, flag, i, *val, one = 1;    MPI_Aint  *myval_p;    MPI_Win_get_group( counter_win, &group );    MPI_Group_rank( group, &rank );    MPI_Group_size( group, &size );    MPI_Group_free( &group );    MPI_Win_get_attr( counter_win, MPE_COUNTER_KEYVAL, &myval_p,                       &flag );    myval = *myval_p;    val = (int *)malloc( size * sizeof(int) );    MPI_Win_lock( MPI_LOCK_EXCLUSIVE, 0, 0, counter_win );    for (i=0; i<size; i++) {	if (i == rank) 	    MPI_Accumulate( &one, 1, MPI_INT, 0, i, 1, MPI_INT, 			    MPI_SUM, counter_win );	else	    MPI_Get( &val[i], 1, MPI_INT, 0, i, 1, MPI_INT, 		     counter_win );    }    MPI_Win_unlock( 0, counter_win );    /* Add to our contribution */    *myval_p = *myval_p + 1;    /* Compute the overall value.       Storing *myval_p into val[rank] and starting *value at zero        would eliminate the if test */    *value = myval;    for (i=0; i<size; i++) {	if (i != rank) *value = *value + val[i];    }    free( val );    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -