00001 #ifndef nrnmpi_h 00002 #define nrnmpi_h 00003 #include "nrnmpiuse.h" 00004 00005 /* by default nrnmpi_numprocs_world = nrnmpi_numprocs = nrnmpi_numsubworlds and 00006 nrnmpi_myid_world = nrnmpi_myid and the bulletin board and network communication do 00007 not easily coexist. ParallelContext.subworlds(nsmall) divides the world into 00008 nrnmpi_numprocs_world/small subworlds of size nsmall. 00009 */ 00010 extern int nrnmpi_numprocs_world; /* size of entire world. total size of all subworlds */ 00011 extern int nrnmpi_myid_world; /* rank in entire world */ 00012 extern int nrnmpi_numprocs; /* size of subworld */ 00013 extern int nrnmpi_myid; /* rank in subworld */ 00014 extern int nrnmpi_numprocs_bbs; /* number of subworlds */ 00015 extern int nrnmpi_myid_bbs; /* rank in nrn_bbs_comm of rank 0 of a subworld */ 00016 00017 #if NRNMPI 00018 00019 #if defined(__cplusplus) 00020 extern "C" { 00021 #endif 00022 00023 extern int nrnmpi_use; /* NEURON does MPI init and terminate?*/ 00024 extern void nrnmpi_init(int under_NEURON_control, int* pargc, char*** pargv); 00025 extern void nrnmpi_terminate(); 00026 extern void nrnmpi_abort(int errcode); 00027 extern double nrnmpi_wtime(); 00028 00029 #if defined(__cplusplus) 00030 } 00031 #endif /*c++*/ 00032 00033 #endif /*NRNMPI*/ 00034 #endif /*nrnmpi_h*/