first rule : dimers random walk in 1D space
This commit is contained in:
parent
29e43c2f18
commit
160d514213
|
@ -33,7 +33,7 @@ void WorkerInit(Worker_t *worker)
|
||||||
worker->id = (pthread_t*) calloc(1, sizeof(pthread_t));
|
worker->id = (pthread_t*) calloc(1, sizeof(pthread_t));
|
||||||
if (pthread_create(worker->id, NULL, workerMain, worker)) {
|
if (pthread_create(worker->id, NULL, workerMain, worker)) {
|
||||||
printLog("Worker #%lu can't be initialized!\n", *(worker->id));
|
printLog("Worker #%lu can't be initialized!\n", *(worker->id));
|
||||||
return NULL;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,9 +48,37 @@ static void *workerMain(void *worker)
|
||||||
args = (Worker_t*) worker;
|
args = (Worker_t*) worker;
|
||||||
printLog("Worker #%lu online\n", *args->id);
|
printLog("Worker #%lu online\n", *args->id);
|
||||||
|
|
||||||
for (int i = 0; i < 45000; i++) {
|
int size = args->globalDrawingSpace->size;
|
||||||
for (int j = i; j < 45000; j++) {
|
/* In each cell: the West (left) site is 0, the East (right) site is 1 */
|
||||||
a = (a + (long)args->id) * i * j;
|
for (int orig=0; orig < size; orig++){
|
||||||
|
int nxt1 = (orig + 1) % size,
|
||||||
|
nxt2 = (orig + 2) % size,
|
||||||
|
prv1 = (orig - 1 + size) % size;
|
||||||
|
|
||||||
|
if(
|
||||||
|
args->globalDrawingSpace->space[orig].sites[1].nArrow == 1
|
||||||
|
&& args->globalDrawingSpace->space[nxt2].sites[0].nArrow == 0
|
||||||
|
|
||||||
|
) {
|
||||||
|
args->globalDrawingSpace->space[orig].sites[1].nArrow = 0;
|
||||||
|
args->globalDrawingSpace->space[nxt1].sites[0].nArrow = 0;
|
||||||
|
args->globalDrawingSpace->space[nxt1].sites[1].nArrow = 1;
|
||||||
|
args->globalDrawingSpace->space[nxt2].sites[0].nArrow = 1;
|
||||||
|
|
||||||
|
/* TODO args->arrowArray->array[1].siteId = 0;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
else if(
|
||||||
|
args->globalDrawingSpace->space[orig].sites[1].nArrow == 1
|
||||||
|
&& args->globalDrawingSpace->space[prv1].sites[0].nArrow == 0
|
||||||
|
|
||||||
|
) {
|
||||||
|
args->globalDrawingSpace->space[orig].sites[1].nArrow = 0;
|
||||||
|
args->globalDrawingSpace->space[nxt1].sites[0].nArrow = 0;
|
||||||
|
args->globalDrawingSpace->space[orig].sites[0].nArrow = 1;
|
||||||
|
args->globalDrawingSpace->space[prv1].sites[1].nArrow = 1;
|
||||||
|
|
||||||
|
/* TODO args->arrowArray->array[1].siteId = 0;*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@ static void *schedulerMain(void *scheduler)
|
||||||
args = (Scheduler_t*) scheduler;
|
args = (Scheduler_t*) scheduler;
|
||||||
printLog("Scheduler #%lu online\n", *args->id);
|
printLog("Scheduler #%lu online\n", *args->id);
|
||||||
|
|
||||||
if (!args->nmaxThread) { // nmaxthread = 0 => no minimum
|
if (!args->nMaxThread) { // nmaxthread = 0 => no minimum
|
||||||
ncpu = get_nprocs(); // allocating all the cpus available
|
ncpu = get_nprocs(); // allocating all the cpus available
|
||||||
} else { // n thread = min(cpu, nmaxthread)
|
} else { // n thread = min(cpu, nmaxthread)
|
||||||
ncpu = MIN(get_nprocs(), args->nMaxThread);
|
ncpu = MIN(get_nprocs(), args->nMaxThread);
|
||||||
|
|
Loading…
Reference in New Issue