Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove the threadpool from the context factories.
authorcristianrosa <cristianrosa@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 13 Dec 2010 08:58:07 +0000 (08:58 +0000)
committercristianrosa <cristianrosa@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 13 Dec 2010 08:58:07 +0000 (08:58 +0000)
It was way too slow.

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@9141 48e7efb5-ca39-0410-a469-dd3cf9ba447f

include/xbt/parmap.h [moved from include/xbt/threadpool.h with 100% similarity]
src/simix/smx_context_raw.c
src/simix/smx_context_sysv.c
src/xbt/parmap.c [moved from src/xbt/threadpool.c with 100% similarity]
src/xbt/parmap_private.h [moved from src/xbt/threadpool_private.h with 100% similarity]

index b687123..fb8c9a9 100644 (file)
@@ -6,7 +6,6 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include "xbt/threadpool.h"
 #include "simix/private.h"
 
 #ifdef HAVE_VALGRIND_VALGRIND_H
@@ -158,15 +157,11 @@ void raw_swapcontext(raw_stack_t* old, raw_stack_t new) {
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_context);
 
-static xbt_tpool_t tpool;
-
 static void smx_ctx_raw_wrapper(smx_ctx_raw_t context);
 
 
 static int smx_ctx_raw_factory_finalize(smx_context_factory_t *factory)
 { 
-  if(tpool)
-    xbt_tpool_destroy(tpool);
   return smx_ctx_base_factory_finalize(factory);
 }
 
@@ -283,9 +278,8 @@ static void smx_ctx_raw_runall_parallel(xbt_swag_t processes)
 {
   smx_process_t process;
   while((process = xbt_swag_extract(processes))){
-    xbt_tpool_queue_job(tpool, (void_f_pvoid_t)smx_ctx_raw_resume_parallel, process->context);
+    /* FIXME */
   }
-  xbt_tpool_wait_all(tpool);
 }
 
 static smx_context_t smx_ctx_raw_self_parallel(void)
@@ -309,7 +303,6 @@ void SIMIX_ctx_raw_factory_init(smx_context_factory_t *factory)
 
   if(_surf_parallel_contexts){
 #ifdef CONTEXT_THREADS  /* To use parallel ucontexts a thread pool is needed */
-    tpool = xbt_tpool_new(2, 10);
     (*factory)->runall = smx_ctx_raw_runall_parallel;
     (*factory)->self = smx_ctx_raw_self_parallel;
 #else
index d17a080..27d0332 100644 (file)
@@ -7,7 +7,7 @@
   * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "smx_context_sysv_private.h"
-#include "xbt/threadpool.h"
+//#include "xbt/threadpool.h"
 #include "simix/private.h"
 
 #ifdef HAVE_VALGRIND_VALGRIND_H
@@ -23,7 +23,7 @@
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_context);
 
-static xbt_tpool_t tpool;
+//static xbt_parmap_t tpool;
 
 static smx_context_t
 smx_ctx_sysv_create_context(xbt_main_func_t code, int argc, char **argv,
@@ -45,7 +45,7 @@ void SIMIX_ctx_sysv_factory_init(smx_context_factory_t *factory)
 
   if(_surf_parallel_contexts){
 #ifdef CONTEXT_THREADS /* To use parallel ucontexts a thread pool is needed */
-    tpool = xbt_tpool_new(2, 10);
+//    tpool = xbt_parmap_new(2, 10);
     (*factory)->runall = smx_ctx_sysv_runall_parallel;
     (*factory)->self = smx_ctx_sysv_self_parallel;
 #else
@@ -58,8 +58,8 @@ void SIMIX_ctx_sysv_factory_init(smx_context_factory_t *factory)
 
 int smx_ctx_sysv_factory_finalize(smx_context_factory_t *factory)
 { 
-  if(tpool)
-    xbt_tpool_destroy(tpool);
+/*  if(tpool)
+    xbt_parmap_destroy(tpool);*/
   return smx_ctx_base_factory_finalize(factory);
 }
 
@@ -187,9 +187,9 @@ void smx_ctx_sysv_runall_parallel(xbt_swag_t processes)
 {
   smx_process_t process;
   while((process = xbt_swag_extract(processes))){
-    xbt_tpool_queue_job(tpool, (void_f_pvoid_t)smx_ctx_sysv_resume_parallel, process->context);
+  //  xbt_parmap_apply(tpool, (void_f_pvoid_t)smx_ctx_sysv_resume_parallel, process->context);
   }
-  xbt_tpool_wait_all(tpool);
+  /*xbt_tpool_wait_all(tpool);*/
 }
 
 smx_context_t smx_ctx_sysv_self_parallel(void)
similarity index 100%
rename from src/xbt/threadpool.c
rename to src/xbt/parmap.c