Next: The c_trace backend, Previous: The c_mpi backend, Up: Supplied backends [Contents][Index]
c_udgram
backendcoNCePTuaL program development on a workstation is facilitated
by the
c_udgram
backend.
c_udgram
runs on only a single machine but,
unlike
c_seq
, supports all of coNCePTuaL’s communication
statements. Communication is performed over Unix-domain datagram
sockets. Unix-domain datagrams are reliable and guarantee order
(unlike UDP/IP datagrams) but have a maximum packet size.
c_udgram
backend write this maximum to every log
file and automatically packetizes larger messages.
By default,
c_udgram
produces an executable program that can
be run directly from the command line. When ncptl
is run with the --no-link option,
c_udgram
produces an object file that needs to be
linked with the appropriate sockets library (on systems that
require a separate library for socket calls). When ncptl
is run with the --no-compile option,
c_udgram
outputs ANSI C code
that must be both compiled and linked. Like all C-based backends,
c_udgram
honors the CC
,
CPPFLAGS
,
LDFLAGS
, and
LIBS
environment variables when compiling and linking. Values not found
in the environment are taken from those specified/discovered at
configuration time (see configure).
In addition to supporting the default set of command-line
options, programs generated using the
c_udgram
backend further support a
--tasks option that
designates the number of tasks to use:
-T, --tasks=<number> Number of tasks to use [default: 1] |
c_udgram
programs spawn one OS-level process for each
task in the program. They also create a number of sockets in the
current directory named ‘c_udgram_ <tag>’. These are
automatically deleted if the program exits cleanly but will need to
be removed manually in the case that the program is killed by an
non-trappable signal.
• Implementation of collectives: | How c_udgram implements collective operations |
Next: The c_trace backend, Previous: The c_mpi backend, Up: Supplied backends [Contents][Index]