[petsc-dev] bad code that needs fixing
    Paul Mullowney 
    paulm at txcorp.com
       
    Sun Mar 17 15:36:13 CDT 2013
    
    
  
Here's a patch following the instructions on the wiki for small patches.
-Paul
>    {
>      int size;
>      ierr = MPI_Comm_size(PETSC_COMM_WORLD,&size);CHKERRQ(ierr);
>      if (size>1) {
>        int devCount, device, rank;
>        ierr   = cudaGetDeviceCount(&devCount);CHKERRQ(ierr);
>        ierr   = MPI_Comm_rank(PETSC_COMM_WORLD,&rank);CHKERRQ(ierr);
>        device = rank % devCount;
>        ierr   = cudaSetDevice(device);CHKERRQ(ierr);
>      } else {
>        int device;
>        /* the code below works for serial GPU simulations */
>        ierr = PetscOptionsGetInt(NULL,"-cuda_set_device",&device,&flg1);CHKERRQ(ierr);
>        if (flg1) {
>          ierr = cudaSetDevice(device);CHKERRQ(ierr);
>        }
>      }
>    }
>
> size int should be PETScMPIInt and device int cannot be an int if it is passed to PetscOptionsGetInt which requires a PetscInt.
>
>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 0001-cuda-device-selection.patch
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20130317/8b3af7b6/attachment.ksh>
    
    
More information about the petsc-dev
mailing list