INT) Default = TRUE
If TRUE, then attempt to use static, compile-time addressing of data buffers between stars. Otherwise, generate code for dynamic, run-time addressing.
STRING) Default = main
The name of the main function. The default value of main is suitable for generating stand-alone programs. Choose another name if you wish to use the generated code as a procedure that is called from your own main program.
STRING) Default = cc
Command name of the compiler.
STRING) Default =STRING) Default = -lm
Options passed to the linker.
STRING) Default = STDIO
List of abstract resources that the host computer has.
default-CGC target generates C code for a single processor from a SDF program graph. The parameters available to the user are shown in
Table 14-1, "Parameters of the default-CGC target," on page 14-2. See
"Targets" on page 13-1 and
"CGC Targets" on page 14-1 for detailed descriptions of these parameters.
compile? file Looping Level
compileCommand funcName resources
compileOptions host run?
directory linkOptions staticBuffering
display?
TABLE 14-1: Parameters of the default-CGC targetMakefile_C target compiles CGC binaries with makefiles so that compile time architecture and site dependencies can be handled. The Makefile_C target generates a small makefile that is rcp'd over to the remote machine. The generated makefile is named after the universe. If the universe is called bigBang, then the makefile will be called bigBang.mk. We name the generated makefiles so that more than one makefile can exist in the users' directory.$PTOLEMY/lib/cgc/makefile_C.mk as a starting point, and then appends lines to it. The generated makefile includes $PTOLEMY/mk/config-$PTARCH.mk, which determines architecture and site dependencies, such as which compiler to use, or where the X11 include files are. The user may modify makefile_C.mk and add site-dependent rules and variables there. If the user wants to have site dependent include files on the remote machines, then they could add include $(ROOT)/mk/mysite.mk to makefile_C.mk, and that file would be included on the remote machines at compile time.Makefile_C target assumes:
$PTOLEMY and $PTARCH are set on the remote machine when rshing.
$PTOLEMY/mk/config-$PTARCH.mk and any makefile files included by that file are present.
make binary is present. The Makefile_C target does not assume GNU make, so the default makefile_C.mk does not include mk/common.mk. The reason not to assume GNU make is that we are not sure what the user's path is like when they log in. The user can require that GNU make be used by setting the skeletonMakefile target parameter to the name of a makefile that requires GNU make.
Default_C target.
STRING) Default=$PTOLEMY/lib/cgc/makefile_C.mk as our skeleton makefile. If this parameter is not empty then the value of the parameter refers to the skeleton makefile to be copied into the generated makefile.
INT) Default = 1
This target parameter controls whether we append rules to the generated makefile or just copy it over to the remote machine. In the default situation, appendToMakefile is true and we append our rules after copying $PTOLEMY/lib/cgc/makefile_C.mk
Makefile_C target is default-CGC. If the parent target parameter compileOptions is set, then we process any environment variables in that string, and then add it to the end of the generated makefile as part of OTHERCFLAGS=. In a similar fashion, the parent target parameter linkOptions ends up as part of the right-hand side of LOADLIBES=.The
TclTk_Target target, which is derived from the Makefile_C target, must be used when Tcl/Tk stars are present in the program graph. The initial default of one parameter differs from that of the parent target.
STRING) Default=$PTOLEMY/lib/cgc/TclTk_Target.mk
The TclTk_Target overrides this parent target parameter and sets it to the name of a skeleton makefile to be copied into the generated makefile.
bdf-CGC target supports the BDF model of computation. It must be used when BDF stars are present in the program graph. It can also be used with program graphs that contain only SDF stars. The bdf-CGC target has the same parameters as the default-CGC target with the exception that the Looping Level parameter is absent. This is because a loop-generating algorithm is always used for scheduling. See
"BDF Domain" on page 8-1 for details.
14.2.2 Multi-Processor Targets
Currently, the CGC domain supports two multi-processor targets: unixMulti_C and NOWam. The unixMulti_C target generates code for multiple networked workstations using a shared bus configuration for scheduling purposes. Inter-processor communication is implemented by splicing send/receive stars into the program graph. These communication stars use the TCP/IP protocol. In addition to the target parameters described in
"CGC Targets" on page 14-1 and
"Targets" on page 13-1, this target defines the user parameters listed below.
Table 14-2, "Parameters of the unixMulti_C target," on page 14-4 gives the complete list of parameters for the unixMulti_C target.
adjustSchedule ignoreIPC overlapComm
amortizedComm inheritProcessors portNumber
childType logFile relTimeScales
compile? machineNames resources
directory manualAssignment run?
display? nameSuffix sendTime
file nprocs userCluster
ganttChart oneStarOneProc tabular
TABLE 14-2: Parameters of the unixMulti_C target
INT) Default = 7654
The starting TCP/IP port number used by send/receive stars. The port number is incremented for each send/receive pair. It is the responsibility of the user to ensure that the port number does not conflict with any that may already be in use.
STRING) Default = herschel
The host names of the workstations which form the multi-processor. The names should be separated by a comma (`,').
STRING) Default = NOWam target uses Networks Of Workstations (NOW) active messages to communicate between machines. The NOW project is an effort to use many commodity workstations to create a building-wide supercomputer. For more information about the NOW project, see http://now.cs.berkeley.edu. Currently, the NOWam target is still experimental, and only a proof of concept. The NOWam target has the following target parameters:
STRING) Default = lucky, babbage
The host names of the workstations which form the multi-processor. The names should be separated by a comma (`,'). The NOWam target will not work on the local machines, the machines named by this parameter must be remote machines. Note that the default of this parameter differs from the default in the UnixMulti_C target.
STRING) Default =UnixMulti_C above.
FLOAT and INT values. Also, it is only working for parameters of Stars at the top level, i.e. it will not work with Galaxies' and Universes' parameters, or parameters of Stars in Galaxies.To specify a parameter for setting via the command-line, place the cursor over the Star and invoke the edit-pragmas command (`
a'). In the dialog box, enter the name of the parameter to be made settable, follow by white space, then the name of the command-line option with which to set the parameter. This parameter /option-name pair should be entered for each of the required parameters, with pairs separated by white space.Now, the generated program will take the new options each followed by a value with which to set the corresponding parameters. If the command-line option is not specified for a parameter, it will be initialized to its default value, which will be the value set by the edit-params command (`
e'). In addition, if the `-h', `-help' or `-HELP' option is specified, the program will print the option-names corresponding to the settable parameters with their default values.