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

📄 allred.c

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 C
📖 第 1 页 / 共 5 页
字号:
free( sol );}{unsigned long *in, *out, *sol;int  i, fnderr=0;in = (unsigned long *)malloc( count * sizeof(unsigned long) );out = (unsigned long *)malloc( count * sizeof(unsigned long) );sol = (unsigned long *)malloc( count * sizeof(unsigned long) );for (i=0; i<count; i++) { *(in + i) = (rank == size-1 ? i : ~0); *(sol + i) = i; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_UNSIGNED_LONG, MPI_BAND, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_UNSIGNED_LONG and op MPI_BAND\n", world_rank );free( in );free( out );free( sol );}{unsigned char *in, *out, *sol;int  i, fnderr=0;in = (unsigned char *)malloc( count * sizeof(unsigned char) );out = (unsigned char *)malloc( count * sizeof(unsigned char) );sol = (unsigned char *)malloc( count * sizeof(unsigned char) );for (i=0; i<count; i++) { *(in + i) = (rank == size-1 ? i : ~0); *(sol + i) = i; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_BYTE, MPI_BAND, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_BYTE and op MPI_BAND\n", world_rank );free( in );free( out );free( sol );}gerr += errcnt;if (errcnt > 0)	printf( "Found %d errors on %d for MPI_BAND(1)\n", errcnt, rank );errcnt = 0;{int *in, *out, *sol;int  i, fnderr=0;in = (int *)malloc( count * sizeof(int) );out = (int *)malloc( count * sizeof(int) );sol = (int *)malloc( count * sizeof(int) );for (i=0; i<count; i++) { *(in + i) = (rank == size-1 ? i : 0); *(sol + i) = 0; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_INT, MPI_BAND, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_INT and op MPI_BAND\n", world_rank );free( in );free( out );free( sol );}{long *in, *out, *sol;int  i, fnderr=0;in = (long *)malloc( count * sizeof(long) );out = (long *)malloc( count * sizeof(long) );sol = (long *)malloc( count * sizeof(long) );for (i=0; i<count; i++) { *(in + i) = (rank == size-1 ? i : 0); *(sol + i) = 0; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_LONG, MPI_BAND, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_LONG and op MPI_BAND\n", world_rank );free( in );free( out );free( sol );}{short *in, *out, *sol;int  i, fnderr=0;in = (short *)malloc( count * sizeof(short) );out = (short *)malloc( count * sizeof(short) );sol = (short *)malloc( count * sizeof(short) );for (i=0; i<count; i++) { *(in + i) = (rank == size-1 ? i : 0); *(sol + i) = 0; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_SHORT, MPI_BAND, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_SHORT and op MPI_BAND\n", world_rank );free( in );free( out );free( sol );}{unsigned short *in, *out, *sol;int  i, fnderr=0;in = (unsigned short *)malloc( count * sizeof(unsigned short) );out = (unsigned short *)malloc( count * sizeof(unsigned short) );sol = (unsigned short *)malloc( count * sizeof(unsigned short) );for (i=0; i<count; i++) { *(in + i) = (rank == size-1 ? i : 0); *(sol + i) = 0; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_UNSIGNED_SHORT, MPI_BAND, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_UNSIGNED_SHORT and op MPI_BAND\n", world_rank );free( in );free( out );free( sol );}{unsigned *in, *out, *sol;int  i, fnderr=0;in = (unsigned *)malloc( count * sizeof(unsigned) );out = (unsigned *)malloc( count * sizeof(unsigned) );sol = (unsigned *)malloc( count * sizeof(unsigned) );for (i=0; i<count; i++) { *(in + i) = (rank == size-1 ? i : 0); *(sol + i) = 0; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_UNSIGNED, MPI_BAND, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_UNSIGNED and op MPI_BAND\n", world_rank );free( in );free( out );free( sol );}{unsigned long *in, *out, *sol;int  i, fnderr=0;in = (unsigned long *)malloc( count * sizeof(unsigned long) );out = (unsigned long *)malloc( count * sizeof(unsigned long) );sol = (unsigned long *)malloc( count * sizeof(unsigned long) );for (i=0; i<count; i++) { *(in + i) = (rank == size-1 ? i : 0); *(sol + i) = 0; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_UNSIGNED_LONG, MPI_BAND, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_UNSIGNED_LONG and op MPI_BAND\n", world_rank );free( in );free( out );free( sol );}gerr += errcnt;if (errcnt > 0)	printf( "Found %d errors on %d for MPI_BAND(0)\n", errcnt, rank );errcnt = 0;/* Test BXOR */if (world_rank == 0 && verbose) printf( "Testing MPI_BXOR...\n" );{int *in, *out, *sol;int  i, fnderr=0;in = (int *)malloc( count * sizeof(int) );out = (int *)malloc( count * sizeof(int) );sol = (int *)malloc( count * sizeof(int) );for (i=0; i<count; i++) { *(in + i) = (rank == 1)*0xf0 ; *(sol + i) = (size > 1)*0xf0 ; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_INT, MPI_BXOR, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_INT and op MPI_BXOR\n", world_rank );free( in );free( out );free( sol );}{long *in, *out, *sol;int  i, fnderr=0;in = (long *)malloc( count * sizeof(long) );out = (long *)malloc( count * sizeof(long) );sol = (long *)malloc( count * sizeof(long) );for (i=0; i<count; i++) { *(in + i) = (rank == 1)*0xf0 ; *(sol + i) = (size > 1)*0xf0 ; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_LONG, MPI_BXOR, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_LONG and op MPI_BXOR\n", world_rank );free( in );free( out );free( sol );}{short *in, *out, *sol;int  i, fnderr=0;in = (short *)malloc( count * sizeof(short) );out = (short *)malloc( count * sizeof(short) );sol = (short *)malloc( count * sizeof(short) );for (i=0; i<count; i++) { *(in + i) = (rank == 1)*0xf0 ; *(sol + i) = (size > 1)*0xf0 ; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_SHORT, MPI_BXOR, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_SHORT and op MPI_BXOR\n", world_rank );free( in );free( out );free( sol );}{unsigned short *in, *out, *sol;int  i, fnderr=0;in = (unsigned short *)malloc( count * sizeof(unsigned short) );out = (unsigned short *)malloc( count * sizeof(unsigned short) );sol = (unsigned short *)malloc( count * sizeof(unsigned short) );for (i=0; i<count; i++) { *(in + i) = (rank == 1)*0xf0 ; *(sol + i) = (size > 1)*0xf0 ; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_UNSIGNED_SHORT, MPI_BXOR, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_UNSIGNED_SHORT and op MPI_BXOR\n", world_rank );free( in );free( out );free( sol );}{unsigned *in, *out, *sol;int  i, fnderr=0;in = (unsigned *)malloc( count * sizeof(unsigned) );out = (unsigned *)malloc( count * sizeof(unsigned) );sol = (unsigned *)malloc( count * sizeof(unsigned) );for (i=0; i<count; i++) { *(in + i) = (rank == 1)*0xf0 ; *(sol + i) = (size > 1)*0xf0 ; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_UNSIGNED, MPI_BXOR, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_UNSIGNED and op MPI_BXOR\n", world_rank );free( in );free( out );free( sol );}{unsigned long *in, *out, *sol;int  i, fnderr=0;in = (unsigned long *)malloc( count * sizeof(unsigned long) );out = (unsigned long *)malloc( count * sizeof(unsigned long) );sol = (unsigned long *)malloc( count * sizeof(unsigned long) );for (i=0; i<count; i++) { *(in + i) = (rank == 1)*0xf0 ; *(sol + i) = (size > 1)*0xf0 ; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_UNSIGNED_LONG, MPI_BXOR, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_UNSIGNED_LONG and op MPI_BXOR\n", world_rank );free( in );free( out );free( sol );}gerr += errcnt;if (errcnt > 0)	printf( "Found %d errors on %d for MPI_BXOR(1)\n", errcnt, rank );errcnt = 0;{int *in, *out, *sol;int  i, fnderr=0;in = (int *)malloc( count * sizeof(int) );out = (int *)malloc( count * sizeof(int) );sol = (int *)malloc( count * sizeof(int) );for (i=0; i<count; i++) { *(in + i) = 0; *(sol + i) = 0; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_INT, MPI_BXOR, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_INT and op MPI_BXOR\n", world_rank );free( in );free( out );free( sol );}{long *in, *out, *sol;int  i, fnderr=0;in = (long *)malloc( count * sizeof(long) );out = (long *)malloc( count * sizeof(long) );sol = (long *)malloc( count * sizeof(long) );for (i=0; i<count; i++) { *(in + i) = 0; *(sol + i) = 0; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_LONG, MPI_BXOR, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_LONG and op MPI_BXOR\n", world_rank );free( in );free( out );free( sol );}{short *in, *out, *sol;int  i, fnderr=0;in = (short *)malloc( count * sizeof(short) );out = (short *)malloc( count * sizeof(short) );sol = (short *)malloc( count * sizeof(short) );for (i=0; i<count; i++) { *(in + i) = 0; *(sol + i) = 0; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_SHORT, MPI_BXOR, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_SHORT and op MPI_BXOR\n", world_rank );free( in );free( out );free( sol );}{unsigned short *in, *out, *sol;int  i, fnderr=0;in = (unsigned short *)malloc( count * sizeof(unsigned short) );out = (unsigned short *)malloc( count * sizeof(unsigned short) );sol = (unsigned short *)malloc( count * sizeof(unsigned short) );for (i=0; i<count; i++) { *(in + i) = 0; *(sol + i) = 0; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_UNSIGNED_SHORT, MPI_BXOR, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_UNSIGNED_SHORT and op MPI_BXOR\n", world_rank );free( in );free( out );free( sol );}{unsigned *in, *out, *sol;int  i, fnderr=0;in = (unsigned *)malloc( count * sizeof(unsigned) );out = (unsigned *)malloc( count * sizeof(unsigned) );sol = (unsigned *)malloc( count * sizeof(unsigned) );for (i=0; i<count; i++) { *(in + i) = 0; *(sol + i) = 0; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_UNSIGNED, MPI_BXOR, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_UNSIGNED and op MPI_BXOR\n", world_rank );free( in );free( out );free( sol );}{unsigned long *in, *out, *sol;int  i, fnderr=0;in = (unsigned long *)malloc( count * sizeof(unsigned long) );out = (unsigned long *)malloc( count * sizeof(unsigned long) );sol = (unsigned long *)malloc( count * sizeof(unsigned long) );for (i=0; i<count; i++) { *(in + i) = 0; *(sol + i) = 0; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_UNSIGNED_LONG, MPI_BXOR, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_UNSIGNED_LONG and op MPI_BXOR\n", world_rank );free( in );free( out );free( sol );}gerr += errcnt;if (errcnt > 0)	printf( "Found %d errors on %d for MPI_BXOR(0)\n", errcnt, rank );errcnt = 0;{int *in, *out, *sol;int  i, fnderr=0;in = (int *)malloc( count * sizeof(int) );out = (int *)malloc( count * sizeof(int) );sol = (int *)malloc( count * sizeof(int) );for (i=0; i<count; i++) { *(in + i) = ~0; *(sol + i) = 0; 	*(out + i) = 0; }MPI_Allreduce( in, out, count, MPI_INT, MPI_BXOR, comm );for (i=0; i<count; i++) { if (*(out + i) != *(sol + i)) {errcnt++; fnderr++;}}if (fnderr) fprintf( stderr,  	"(%d) Error for type MPI_INT and op MPI_BXOR\n", world_rank );free( in );free( out );free( sol );}{long *in, *out, *sol;int  i, fnderr=0;in = (long *)malloc( count * sizeof(long) );out = (long *)malloc( count * sizeof(long) );sol = (long *)mall

⌨️ 快捷键说明

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