申し訳ありませんが、これは愚かな質問ですが、私は以下のif文の実際の意味を知りたいだけです。2の累乗でMPIのプロセス数を確認してください
int rank, numprocs;
MPI_Status status;
MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
MPI_Comm_rank(MPI_COMM_WORLD, &rank );
if(numprocs&(numprocs-1))
{
if(rank==0) printf("numprocs must be a power of 2.\n");
MPI_Finalize();
return EXIT_FAILURE;
}
私は「numprocsのは&(numprocsの-1)」numprocsのは2のべき乗であるかどうかを確認するために使用されていることを言われましたが、どのようにそれは実際に動作しますか?この声明の出力は何ですか?ブール値かintか?
ありがとうございました。