3 WRITE(0,*)
"JFH_BIND compiled without -DRS6K so not binding" 5 END SUBROUTINE jfh_bind
56 INTEGER omp_get_max_threads
57 INTEGER omp_get_thread_num
58 INTEGER,
ALLOCATABLE :: ita(:), map(:)
59 INTEGER,
ALLOCATABLE :: jcpu(:), id0(:), id1(:)
60 INTEGER ip,it,nt,mp,iproc,nmap
63 INTEGER ismt, is_smt_on
64 INTEGER ifirst, iprt, ira
77 CALL system(
"hostname")
80 CALL mpi_initialized(lflg,ier)
82 CALL mpi_comm_rank(mpi_comm_world,ip,ier)
85 CALL get_environment_variable(
"MP_CHILD",
VALUE=c)
99 nt=omp_get_max_threads()
102 CALL get_environment_variable(
"JFH_BIND",cb)
105 IF(cb.EQ.
"yes".OR.cb.EQ.
"YES".OR.cb.EQ.
"map".OR.cb.EQ.
"MAP")
THEN 113 IF(ismt .NE. -99)
THEN 114 CALL smtctl(mp/2, id0, id1)
125 IF(cb.EQ.
"map".OR.cb.EQ.
"MAP")
THEN 126 CALL get_environment_variable(
"JFH_BMAP",cbm)
127 READ(cbm,*) nmap,(map(i),i=1,min(mp,nmap))
132 CALL get_environment_variable(
"JFH_RA_DET",cc)
133 IF(cc.EQ.
"yes".OR.cc.EQ.
"YES") ira=1
136 CALL get_environment_variable(
"JFH_RA_PRT",cc)
137 IF(cc.EQ.
"yes".OR.cc.EQ.
"YES") iprt=1
147 it=omp_get_thread_num()
150 iproc=mod(iproc,nmap)
153 IF(map(1).EQ.-1)
CALL jbind(jcpu(iproc+1))
154 IF(map(1).NE.-1)
CALL jbind(jcpu(map(iproc+1)+1))
161 it=omp_get_thread_num()
165 WRITE(0,*)
"CPUs = ",(ita(i),i=1,nt)
166 DEALLOCATE(ita,map,jcpu,id0,id1)
167 END SUBROUTINE jfh_bind
int ra_check(const int *check_type, int *prnt)
int ra_det(int *det_type, int *prnt)