multicore.c File Reference

#include <nrnpthread.h>
#include <nrnmpi.h>
Include dependency graph for multicore.c:

Defines

#define CACHELINE_ALLOC(name, type, size)   name = (type*)nrn_cacheline_alloc((void**)&name, size*sizeof(type))
#define CACHELINE_CALLOC(name, type, size)   name = (type*)nrn_cacheline_calloc((void**)&name, size, sizeof(type))
#define BENCHMARKING   0
#define BENCHDECLARE
#define BENCHBEGIN(arg)
#define BENCHADD(arg)
#define WAIT   wait_for_workers
#define BS   0

Functions

void nrn_thread_error (char *)
void nrn_threads_free ()
void nrn_old_thread_save ()
double nrn_time ()
void nrn_mk_table_check ()
void nrn_malloc_lock ()
void nrn_malloc_unlock ()
void nrn_thread_stat ()
void nrn_threads_create (int n, int parallel)
 FOR_THREADS (_nt)
 ForAllSections (sec)
 assert (order==section_count)
 if (nrn_multisplit_setup_)
void nrn_thread_table_check ()
void nrn_hoc_lock ()
void nrn_hoc_unlock ()
void nrn_multithread_job (void *(*job)(NrnThread *))
void nrn_onethread_job (int i, void *(*job)(NrnThread *))
void nrn_wait_for_threads ()
void nrn_thread_partition ()
int nrn_user_partition ()
 for (it=0;it< nrn_nthread;++it)
 if (n!=nrn_global_ncell)
void nrn_thread_partition (int it, Object *sl)
void nrn_use_busywait (int b)
int nrn_allow_busywait (int b)
int nrn_how_many_processors ()

Variables

int nrn_nthread
NrnThreadnrn_threads
void(* nrn_mk_transfer_thread_data_ )()
int nrn_inthread_
 order = 0
 n = 0
 return

Define Documentation

#define BENCHADD ( arg   ) 
#define BENCHBEGIN ( arg   ) 
#define BENCHDECLARE
#define BENCHMARKING   0
#define BS   0
#define CACHELINE_ALLOC ( name,
type,
size   )     name = (type*)nrn_cacheline_alloc((void**)&name, size*sizeof(type))

Referenced by nrn_threads_create().

#define CACHELINE_CALLOC ( name,
type,
size   )     name = (type*)nrn_cacheline_calloc((void**)&name, size, sizeof(type))
#define WAIT   wait_for_workers

Function Documentation

assert ( order  = =section_count  ) 
for (  ) 

References buf, hoc_execerror(), hocSEC, ITERATE, n, Section::parentsec, secname(), and Section::volatile_mark.

Referenced by SaveState::restorenet(), and SaveState::savenet().

Here is the call graph for this function:

FOR_THREADS ( _nt   ) 

References Node::_d, and Node::_rhs.

ForAllSections ( sec   ) 
if ( n!  = nrn_global_ncell  ) 

References buf, hoc_execerror(), n, and nrn_global_ncell.

Here is the call graph for this function:

if ( nrn_multisplit_setup_   ) 

References nrn_multisplit_ptr_update().

Here is the call graph for this function:

int nrn_allow_busywait ( int  b  ) 
void nrn_hoc_lock (  ) 

References nrn_inthread_.

void nrn_hoc_unlock (  ) 
int nrn_how_many_processors (  ) 
void nrn_malloc_lock (  ) 
void nrn_malloc_unlock (  ) 
void nrn_mk_table_check (  ) 
void nrn_multithread_job ( void *(*)(NrnThread *)  job  ) 
void nrn_old_thread_save (  ) 

Referenced by nrn_threads_free().

void nrn_onethread_job ( int  i,
void *(*)(NrnThread *)  job 
)
void nrn_thread_error ( char *  s  ) 

References hoc_execerror().

Referenced by Imp::check(), linmod_alloc(), nrn_lhs(), nrn_rhs(), and nrn_solve().

Here is the call graph for this function:

void nrn_thread_partition ( int  it,
Object *  sl 
)

References assert, hoc_obj_ref(), hoc_obj_unref(), NrnThread::roots, NrnThread::userpart, and v_structure_change.

Here is the call graph for this function:

void nrn_thread_partition (  ) 

Referenced by nrn_user_partition().

void nrn_thread_stat (  ) 

References BS, buf, fprintf(), n, nrnmpi_myid, and nrnmpi_numprocs.

Here is the call graph for this function:

void nrn_thread_table_check (  ) 
void nrn_threads_create ( int  n,
int  parallel 
)
void nrn_threads_free (  ) 
double nrn_time (  ) 

References time.

Referenced by hoc_startsw().

void nrn_use_busywait ( int  b  ) 

References nrn_multithread_job().

Here is the call graph for this function:

int nrn_user_partition (  ) 
void nrn_wait_for_threads (  ) 

Variable Documentation

n = 0
order = 0

Referenced by hoc_fmenu().

Generated on Mon Jun 13 08:10:29 2011 for NEURON by  doxygen 1.6.3