Diet client/server examples
A set of various examples of DIET server/client are provided within the DIET
archive, here are some of the provided examples:
- Batch: A simple basic example on how to use the batch API is
given here: no IN or INOUT args, the client receives as a result the number
of processors on which the service has been executed. The service only writes
to a file, with batch-independent mnemonics, some information on the batch
system.
- BLAS: the server offers the dgemm BLAS
functionality. We plan to offer all BLAS (Basic Linear Algebraic Subroutines)
in the future. Since this function computes
, it can
also compute a matrix-matrix product, a sum of square matrices, etc. All
these services are offered by the BLAS server. Two clients are designed to
use these services: one (dgemm_client.c) is designed to use the
dgemm_ function only, and the other one (client.c) to use
all BLAS functions (but currently only dgemm_) and sub-services,
such as MatPROD.
- dmat_manips: the server offers matrix manipulation routines:
transposition (T), product (MatPROD) and sum
(MatSUM, SqMatSUM for square matrices, and
SqMatSUM_opt for square matrices but re-using the memory space of
the second operand for the result). Any subset of these operations can be
specified on the command line. The last two of them are given for
compatibility with a BLAS server as explained below.
- file_transfer: the server computes the sizes of two input
files and returns them. A third output parameter may be returned; the server
decides randomly whether to send back the first file. This is to show how to
manage a variable number of arguments: the profile declares all arguments
that may be filled, even if they might not be all filled at each
request/computation.
- ScaLAPACK: the server is designed to offer all
ScaLAPACK (parallel version of the LAPACK library) functions but only
manages the pdgemm_ function so far. The pdgemm_ routine
is the parallel version of the dgemm_ function, so that the server
also offers all the same sub-services. Two clients are designed to use these
services: one (pdgemm_client.c) is designed to use the
pdgemm_ function only, and the other one (client.c) to use
all ScaLAPACK functions and sub-services, such as MatPROD.
- workflow: The programs in this directory are examples that
demonstrate how to use the workflow feature of diet. The files representing
the workflows that can be tested are stored in xml sub-directory. For each
workflow, you can find the required services in the corresponding xml file
(check the path attribute of each node element). For the scalar manipulation
example, you can use scalar_server that gathers four different
elementary services.
Subsections
The DIET Team - Mer 29 nov 2017 15:13:36 EST