PICL supports both host/node and hostless programming models. The PICL versions of the two programming models are described below. Most of the material on the host/node programming model is a simplified version of what is available in creference.shar and userguide.shar. It is included here to provide background for the explanations of the hostless model. HOST/NODE --------- HOST: In the host/node programming model, a host process is used to allocate node processors in the multiprocessor and to load node executables onto these processors. A host process first calls open0 to do the allocation, calls load0 to load a node executable onto one or all allocated nodes, and calls close0 to release the processors. In order to enable tracing and to define a file where trace data should be saved, the host prcess calls traceenable. If the host process itself is to be traced, then tracehost and tracelevel must also be called. A common structure for a host program is the following. (See creference.shar and/or userguide.shar for descriptions of these commands.) _______________________________________________________________________________ /* get user input, including tracing parameters and number of processors */ /* to allocate: tracing, filename, verbose, hosttracing, tracesize, flush, */ /* picl, user, trace, nprocs */ ... /* if tracing is desired, enable it */ if (tracing) traceopen(filename, verbose); /* if tracing on the host is desired, start tracing */ if (hosttracing){ tracehost(tracesize, flush); tracelevel(picl,user,trace); }; /* allocate processors */ numprocs = nprocs; open0(&numprocs, &me, &host); /* load all processors with node program (ALLNODES = -1) */ load0("nodeprogram",ALLNODES); /* send data in params[6] and data[i][j] to processors */ params[1] = tracing; params[2] = tracesize; params[3] = verbose; params[4] = picl; params[5] = user; params[6] = trace; for (i=0; i