Next: , Previous: , Up: Usage   [Contents][Index]


3.3 Supplied backends

The coNCePTuaL 1.5.1b distribution includes the following compiler backends:

c_seq

Generate ANSI C code with no communication support.

c_mpi

Generate ANSI C code with calls to the MPI library for communication.

c_udgram

Generate ANSI C code that communicates using Unix-domain (i.e., local to a single machine) datagram sockets.

c_trace

Instrument a C-based backend either to include a call to fprintf() before every program event or to utilize the curses library to display graphically the execution of a selected task.

c_profile

Instrument a C-based backend either to write event timings and tallies to each log file or to the standard error device if the coNCePTuaL program doesn’t use a log file.

interpret

Interpret a coNCePTuaL program, simulating any number of processors and checking for common problems such as deadlocks and mismatched sends and receives.

stats

Output statistics of a program’s execution—message tallies, byte counts, communication peers, network bisection crossings, event tallies, etc.

picl

Output in the PICL trace format a logical-time trace of a coNCePTuaL program’s communication pattern.

paraver

Output in the Paraver trace format a logical-time trace of a coNCePTuaL program’s communication pattern.

latex_vis

Use LaTeX to produce an Encapsulated PostScript visualization of a program’s communication pattern.

dot_ast

Output a program’s parse tree in the Graphviz dot format.

libsea_ast

Output a program’s parse tree in the LibSea graph file format.

coNCePTuaL employs a highly modular software structure for its backends. Many of the backends listed above are built atop other backends. The following figure illustrates the current set of dependencies:


backend-deps

Some dependencies are defined as a static characteristic of a backend. For example, the c_mpi backend is hardwired to derive some of its functionality from c_generic. Other dependencies are determined dynamically. For example, the c_trace backend must be instructed to derive its functionality from one of c_profile, c_mpi, c_udgram, or c_seq. (See The c_trace backend, for more information on the c_trace backend.)

Except for c_generic, all of the compiler backends are described in turn in the following sections. The c_generic backend is unique because it is used exclusively to construct C-based backends; it does nothing by itself. See Backend creation, for a detailed description of c_generic.

Each backend accepts a --help option that explains the backend’s command-line options. The easiest way to request help from a specific backend is with ‘ncptl --backend=backend -- --help’. The empty -- option, mentioned in Compiling coNCePTuaL programs, prevents the compiler from intercepting --help and providing the standard, backend-independent information.


Next: , Previous: , Up: Usage   [Contents][Index]

Scott Pakin, pakin@lanl.gov