\begin{code}
rtsBool TraceSparks = rtsFalse; /* Enable the spark trace mode */
-rtsBool OutputDisabled = rtsFalse; /* Disable output for performance purposes */
rtsBool SparkLocally = rtsFalse; /* Use local threads if possible */
rtsBool DelaySparks = rtsFalse; /* Use delayed sparking */
rtsBool LocalSparkStrategy = rtsFalse; /* Either delayed threads or local threads */
rtsBool GlobalSparkStrategy = rtsFalse; /* Export all threads */
-rtsBool ParallelStats = rtsFalse; /* Gather parallel statistics */
rtsBool DeferGlobalUpdates = rtsFalse; /* Defer updating of global nodes */
rtsBool fishing = rtsFalse; /* We have no fish out in the stream */
\end{code}
return;
/* Show that we've started */
- if (IAmMainThread && !OutputDisabled)
+ if (IAmMainThread && ! RTSflags.ParFlags.outputDisabled)
fprintf(stderr, "Starting main program...\n");
-
/* Record the start time for statistics purposes. */
main_start_time = usertime();
/* fprintf(stderr, "Start time is %u\n", main_start_time); */
else
WaitForPEOp(PP_FINISH, SysManTask);
PEShutDown();
- fprintf(stderr,"Processor %lx shutting down, %ld Threads run\n", mytid, threadId);
+ fprintf(stderr,"PE %lx shutting down, %ld Threads run, %ld Sparks Ignored\n", (W_) mytid, threadId, sparksIgnored);
/* And actually terminate -- always with code 0 */
longjmp(exit_parallel_system, 1);
void
initParallelSystem(STG_NO_ARGS)
{
-
- /* Don't buffer standard channels... */
- setbuf(stdout,NULL);
- setbuf(stderr,NULL);
-
- srand48(time(NULL) * getpid()); /*Initialise Random-number generator seed*/
-
- OkToGC = rtsFalse; /* Must not GC till we have set up the environment */
- /* because C is hanging onto heap pointers */
- /* maybe bogus for the new RTS? -- KH */
- /* And for the GUM system? PWT */
+ /* Don't buffer standard channels... */
+ setbuf(stdout,NULL);
+ setbuf(stderr,NULL);
+
+ srand48(time(NULL) * getpid()); /*Initialise Random-number generator seed*/
+
+ OkToGC = rtsFalse; /* Must not GC till we have set up the environment */
+ /* because C is hanging onto heap pointers */
+ /* maybe bogus for the new RTS? -- KH */
+ /* And for the GUM system? PWT */
+ InitPackBuffer();
+ InitMoreBuffers();
}
\end{code}
-@SynchroniseSystem@ synchronises the reduction task with the system manager,
-and gathers information about which PEs are actually in use.
+@SynchroniseSystem@ synchronises the reduction task with the system manager.
\begin{code}
GLOBAL_TASK_ID *PEs;
for (i = 0; i < nPEs; ++i)
registerTask(PEs[i]);
- addr = WaitForPEOp(PP_INIT, ANY_GLOBAL_TASK);
- SysManTask = Sender_Task(addr);
-
-/* pvm_notify( PvmTaskExit, PP_FAIL, 1, &SysManTask); /* Setup an error handler */
+/* pvm_notify( PvmTaskExit, PP_FAIL, 1, &SysManTask); /? Setup an error handler */
/* Initialise the PE task array? */
}