static const char help[] = "Test overlapped communication on a single star forest (PetscSF)\n\n"; #include #include #include int main(int argc, char **argv) { PetscSF sf; Vec A,Aout; Vec B,Bout; PetscScalar *bufA; PetscScalar *bufAout; PetscScalar *bufB; PetscScalar *bufBout; PetscMPIInt rank, size; PetscInt nroots, nleaves; PetscInt i; PetscInt *ilocal; PetscSFNode *iremote; CHKERRQ(PetscInitialize(&argc,&argv,NULL,help)); CHKERRMPI(MPI_Comm_rank(PETSC_COMM_WORLD,&rank)); CHKERRMPI(MPI_Comm_size(PETSC_COMM_WORLD,&size)); PetscCheckFalse(size != 2,PETSC_COMM_WORLD, PETSC_ERR_USER, "Only coded for two MPI processes"); CHKERRQ(PetscSFCreate(PETSC_COMM_WORLD,&sf)); CHKERRQ(PetscSFSetFromOptions(sf)); nleaves = 2; nroots = 1; CHKERRQ(PetscMalloc1(nleaves,&ilocal)); for (i = 0; i