Sorry, wenn dies eine dumme Frage ist, aber ich möchte nur wissen, was die eigentliche Bedeutung der if-Anweisung unten ist.Überprüfen Sie die Anzahl der Prozesse in MPI für die Leistung von zwei
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;
}
Mir wurde gesagt, dass „numprocs & (numprocs-1)“, wenn die numprocs ist die Potenz von 2 zu überprüfen verwendet wird, aber, wie es tatsächlich funktioniert? Was ist die Ausgabe der Aussage? Ist es boolesch oder int?
Danke.