Add qlmpi and swap to mckernel (This is rebase commit for merging to development)
This commit is contained in:
committed by
Ken Sato
parent
74f15783d2
commit
236a072311
91
executer/include/md5.h
Normal file
91
executer/include/md5.h
Normal file
@@ -0,0 +1,91 @@
|
||||
/*
|
||||
Copyright (C) 1999, 2002 Aladdin Enterprises. All rights reserved.
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
||||
L. Peter Deutsch
|
||||
ghost@aladdin.com
|
||||
|
||||
*/
|
||||
/* $Id: md5.h,v 1.4 2002/04/13 19:20:28 lpd Exp $ */
|
||||
/*
|
||||
Independent implementation of MD5 (RFC 1321).
|
||||
|
||||
This code implements the MD5 Algorithm defined in RFC 1321, whose
|
||||
text is available at
|
||||
http://www.ietf.org/rfc/rfc1321.txt
|
||||
The code is derived from the text of the RFC, including the test suite
|
||||
(section A.5) but excluding the rest of Appendix A. It does not include
|
||||
any code or documentation that is identified in the RFC as being
|
||||
copyrighted.
|
||||
|
||||
The original and principal author of md5.h is L. Peter Deutsch
|
||||
<ghost@aladdin.com>. Other authors are noted in the change history
|
||||
that follows (in reverse chronological order):
|
||||
|
||||
2002-04-13 lpd Removed support for non-ANSI compilers; removed
|
||||
references to Ghostscript; clarified derivation from RFC 1321;
|
||||
now handles byte order either statically or dynamically.
|
||||
1999-11-04 lpd Edited comments slightly for automatic TOC extraction.
|
||||
1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5);
|
||||
added conditionalization for C++ compilation from Martin
|
||||
Purschke <purschke@bnl.gov>.
|
||||
1999-05-03 lpd Original version.
|
||||
*/
|
||||
|
||||
#ifndef md5_INCLUDED
|
||||
# define md5_INCLUDED
|
||||
|
||||
/*
|
||||
* This package supports both compile-time and run-time determination of CPU
|
||||
* byte order. If ARCH_IS_BIG_ENDIAN is defined as 0, the code will be
|
||||
* compiled to run only on little-endian CPUs; if ARCH_IS_BIG_ENDIAN is
|
||||
* defined as non-zero, the code will be compiled to run only on big-endian
|
||||
* CPUs; if ARCH_IS_BIG_ENDIAN is not defined, the code will be compiled to
|
||||
* run on either big- or little-endian CPUs, but will run slightly less
|
||||
* efficiently on either one than if ARCH_IS_BIG_ENDIAN is defined.
|
||||
*/
|
||||
|
||||
typedef unsigned char md5_byte_t; /* 8-bit byte */
|
||||
typedef unsigned int md5_word_t; /* 32-bit word */
|
||||
|
||||
/* Define the state of the MD5 Algorithm. */
|
||||
typedef struct md5_state_s {
|
||||
md5_word_t count[2]; /* message length in bits, lsw first */
|
||||
md5_word_t abcd[4]; /* digest buffer */
|
||||
md5_byte_t buf[64]; /* accumulate block */
|
||||
} md5_state_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
/* Initialize the algorithm. */
|
||||
void md5_init(md5_state_t *pms);
|
||||
|
||||
/* Append a string to the message. */
|
||||
void md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes);
|
||||
|
||||
/* Finish the message and return the digest. */
|
||||
void md5_finish(md5_state_t *pms, md5_byte_t digest[16]);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* end extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* md5_INCLUDED */
|
||||
473
executer/include/pmi.h
Normal file
473
executer/include/pmi.h
Normal file
@@ -0,0 +1,473 @@
|
||||
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
|
||||
/*
|
||||
* (C) 2001 by Argonne National Laboratory.
|
||||
* See COPYRIGHT in top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef PMI_H_INCLUDED
|
||||
#define PMI_H_INCLUDED
|
||||
|
||||
#ifdef USE_PMI2_API
|
||||
#error This header file defines the PMI v1 API, but PMI2 was selected
|
||||
#endif
|
||||
|
||||
/* prototypes for the PMI interface in MPICH */
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*D
|
||||
PMI_CONSTANTS - PMI definitions
|
||||
|
||||
Error Codes:
|
||||
+ PMI_SUCCESS - operation completed successfully
|
||||
. PMI_FAIL - operation failed
|
||||
. PMI_ERR_NOMEM - input buffer not large enough
|
||||
. PMI_ERR_INIT - PMI not initialized
|
||||
. PMI_ERR_INVALID_ARG - invalid argument
|
||||
. PMI_ERR_INVALID_KEY - invalid key argument
|
||||
. PMI_ERR_INVALID_KEY_LENGTH - invalid key length argument
|
||||
. PMI_ERR_INVALID_VAL - invalid val argument
|
||||
. PMI_ERR_INVALID_VAL_LENGTH - invalid val length argument
|
||||
. PMI_ERR_INVALID_LENGTH - invalid length argument
|
||||
. PMI_ERR_INVALID_NUM_ARGS - invalid number of arguments
|
||||
. PMI_ERR_INVALID_ARGS - invalid args argument
|
||||
. PMI_ERR_INVALID_NUM_PARSED - invalid num_parsed length argument
|
||||
. PMI_ERR_INVALID_KEYVALP - invalid keyvalp argument
|
||||
- PMI_ERR_INVALID_SIZE - invalid size argument
|
||||
|
||||
Booleans:
|
||||
+ PMI_TRUE - true
|
||||
- PMI_FALSE - false
|
||||
|
||||
D*/
|
||||
#define PMI_SUCCESS 0
|
||||
#define PMI_FAIL -1
|
||||
#define PMI_ERR_INIT 1
|
||||
#define PMI_ERR_NOMEM 2
|
||||
#define PMI_ERR_INVALID_ARG 3
|
||||
#define PMI_ERR_INVALID_KEY 4
|
||||
#define PMI_ERR_INVALID_KEY_LENGTH 5
|
||||
#define PMI_ERR_INVALID_VAL 6
|
||||
#define PMI_ERR_INVALID_VAL_LENGTH 7
|
||||
#define PMI_ERR_INVALID_LENGTH 8
|
||||
#define PMI_ERR_INVALID_NUM_ARGS 9
|
||||
#define PMI_ERR_INVALID_ARGS 10
|
||||
#define PMI_ERR_INVALID_NUM_PARSED 11
|
||||
#define PMI_ERR_INVALID_KEYVALP 12
|
||||
#define PMI_ERR_INVALID_SIZE 13
|
||||
|
||||
/* PMI Group functions */
|
||||
|
||||
/*@
|
||||
PMI_Init - initialize the Process Manager Interface
|
||||
|
||||
Output Parameter:
|
||||
. spawned - spawned flag
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - initialization completed successfully
|
||||
. PMI_ERR_INVALID_ARG - invalid argument
|
||||
- PMI_FAIL - initialization failed
|
||||
|
||||
Notes:
|
||||
Initialize PMI for this process group. The value of spawned indicates whether
|
||||
this process was created by 'PMI_Spawn_multiple'. 'spawned' will be 'PMI_TRUE' if
|
||||
this process group has a parent and 'PMI_FALSE' if it does not.
|
||||
|
||||
@*/
|
||||
int PMI_Init( int *spawned );
|
||||
|
||||
/*@
|
||||
PMI_Initialized - check if PMI has been initialized
|
||||
|
||||
Output Parameter:
|
||||
. initialized - boolean value
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - initialized successfully set
|
||||
. PMI_ERR_INVALID_ARG - invalid argument
|
||||
- PMI_FAIL - unable to set the variable
|
||||
|
||||
Notes:
|
||||
On successful output, initialized will either be 'PMI_TRUE' or 'PMI_FALSE'.
|
||||
|
||||
+ PMI_TRUE - initialize has been called.
|
||||
- PMI_FALSE - initialize has not been called or previously failed.
|
||||
|
||||
@*/
|
||||
int PMI_Initialized( int *initialized );
|
||||
|
||||
/*@
|
||||
PMI_Finalize - finalize the Process Manager Interface
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - finalization completed successfully
|
||||
- PMI_FAIL - finalization failed
|
||||
|
||||
Notes:
|
||||
Finalize PMI for this process group.
|
||||
|
||||
@*/
|
||||
int PMI_Finalize( void );
|
||||
|
||||
/*@
|
||||
PMI_Get_size - obtain the size of the process group
|
||||
|
||||
Output Parameters:
|
||||
. size - pointer to an integer that receives the size of the process group
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - size successfully obtained
|
||||
. PMI_ERR_INVALID_ARG - invalid argument
|
||||
- PMI_FAIL - unable to return the size
|
||||
|
||||
Notes:
|
||||
This function returns the size of the process group to which the local process
|
||||
belongs.
|
||||
|
||||
@*/
|
||||
int PMI_Get_size( int *size );
|
||||
|
||||
/*@
|
||||
PMI_Get_rank - obtain the rank of the local process in the process group
|
||||
|
||||
Output Parameters:
|
||||
. rank - pointer to an integer that receives the rank in the process group
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - rank successfully obtained
|
||||
. PMI_ERR_INVALID_ARG - invalid argument
|
||||
- PMI_FAIL - unable to return the rank
|
||||
|
||||
Notes:
|
||||
This function returns the rank of the local process in its process group.
|
||||
|
||||
@*/
|
||||
int PMI_Get_rank( int *rank );
|
||||
|
||||
/*@
|
||||
PMI_Get_universe_size - obtain the universe size
|
||||
|
||||
Output Parameters:
|
||||
. size - pointer to an integer that receives the size
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - size successfully obtained
|
||||
. PMI_ERR_INVALID_ARG - invalid argument
|
||||
- PMI_FAIL - unable to return the size
|
||||
|
||||
|
||||
@*/
|
||||
int PMI_Get_universe_size( int *size );
|
||||
|
||||
/*@
|
||||
PMI_Get_appnum - obtain the application number
|
||||
|
||||
Output parameters:
|
||||
. appnum - pointer to an integer that receives the appnum
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - appnum successfully obtained
|
||||
. PMI_ERR_INVALID_ARG - invalid argument
|
||||
- PMI_FAIL - unable to return the size
|
||||
|
||||
|
||||
@*/
|
||||
int PMI_Get_appnum( int *appnum );
|
||||
|
||||
/*@
|
||||
PMI_Publish_name - publish a name
|
||||
|
||||
Input parameters:
|
||||
. service_name - string representing the service being published
|
||||
. port - string representing the port on which to contact the service
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - port for service successfully published
|
||||
. PMI_ERR_INVALID_ARG - invalid argument
|
||||
- PMI_FAIL - unable to publish service
|
||||
|
||||
|
||||
@*/
|
||||
int PMI_Publish_name( const char service_name[], const char port[] );
|
||||
|
||||
/*@
|
||||
PMI_Unpublish_name - unpublish a name
|
||||
|
||||
Input parameters:
|
||||
. service_name - string representing the service being unpublished
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - port for service successfully published
|
||||
. PMI_ERR_INVALID_ARG - invalid argument
|
||||
- PMI_FAIL - unable to unpublish service
|
||||
|
||||
|
||||
@*/
|
||||
int PMI_Unpublish_name( const char service_name[] );
|
||||
|
||||
/*@
|
||||
PMI_Lookup_name - lookup a service by name
|
||||
|
||||
Input parameters:
|
||||
. service_name - string representing the service being published
|
||||
|
||||
Output parameters:
|
||||
. port - string representing the port on which to contact the service
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - port for service successfully obtained
|
||||
. PMI_ERR_INVALID_ARG - invalid argument
|
||||
- PMI_FAIL - unable to lookup service
|
||||
|
||||
|
||||
@*/
|
||||
int PMI_Lookup_name( const char service_name[], char port[] );
|
||||
|
||||
/*@
|
||||
PMI_Barrier - barrier across the process group
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - barrier successfully finished
|
||||
- PMI_FAIL - barrier failed
|
||||
|
||||
Notes:
|
||||
This function is a collective call across all processes in the process group
|
||||
the local process belongs to. It will not return until all the processes
|
||||
have called 'PMI_Barrier()'.
|
||||
|
||||
@*/
|
||||
int PMI_Barrier( void );
|
||||
|
||||
/*@
|
||||
PMI_Abort - abort the process group associated with this process
|
||||
|
||||
Input Parameters:
|
||||
+ exit_code - exit code to be returned by this process
|
||||
- error_msg - error message to be printed
|
||||
|
||||
Return values:
|
||||
. none - this function should not return
|
||||
@*/
|
||||
int PMI_Abort(int exit_code, const char error_msg[]);
|
||||
|
||||
/* PMI Keymap functions */
|
||||
/*@
|
||||
PMI_KVS_Get_my_name - obtain the name of the keyval space the local process group has access to
|
||||
|
||||
Input Parameters:
|
||||
. length - length of the kvsname character array
|
||||
|
||||
Output Parameters:
|
||||
. kvsname - a string that receives the keyval space name
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - kvsname successfully obtained
|
||||
. PMI_ERR_INVALID_ARG - invalid argument
|
||||
. PMI_ERR_INVALID_LENGTH - invalid length argument
|
||||
- PMI_FAIL - unable to return the kvsname
|
||||
|
||||
Notes:
|
||||
This function returns the name of the keyval space that this process and all
|
||||
other processes in the process group have access to. The output parameter,
|
||||
kvsname, must be at least as long as the value returned by
|
||||
'PMI_KVS_Get_name_length_max()'.
|
||||
|
||||
@*/
|
||||
int PMI_KVS_Get_my_name( char kvsname[], int length );
|
||||
|
||||
/*@
|
||||
PMI_KVS_Get_name_length_max - obtain the length necessary to store a kvsname
|
||||
|
||||
Output Parameter:
|
||||
. length - maximum length required to hold a keyval space name
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - length successfully set
|
||||
. PMI_ERR_INVALID_ARG - invalid argument
|
||||
- PMI_FAIL - unable to set the length
|
||||
|
||||
Notes:
|
||||
This function returns the string length required to store a keyval space name.
|
||||
|
||||
A routine is used rather than setting a maximum value in 'pmi.h' to allow
|
||||
different implementations of PMI to be used with the same executable. These
|
||||
different implementations may allow different maximum lengths; by using a
|
||||
routine here, we can interface with a variety of implementations of PMI.
|
||||
|
||||
@*/
|
||||
int PMI_KVS_Get_name_length_max( int *length );
|
||||
|
||||
/*@
|
||||
PMI_KVS_Get_key_length_max - obtain the length necessary to store a key
|
||||
|
||||
Output Parameter:
|
||||
. length - maximum length required to hold a key string.
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - length successfully set
|
||||
. PMI_ERR_INVALID_ARG - invalid argument
|
||||
- PMI_FAIL - unable to set the length
|
||||
|
||||
Notes:
|
||||
This function returns the string length required to store a key.
|
||||
|
||||
@*/
|
||||
int PMI_KVS_Get_key_length_max( int *length );
|
||||
|
||||
/*@
|
||||
PMI_KVS_Get_value_length_max - obtain the length necessary to store a value
|
||||
|
||||
Output Parameter:
|
||||
. length - maximum length required to hold a keyval space value
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - length successfully set
|
||||
. PMI_ERR_INVALID_ARG - invalid argument
|
||||
- PMI_FAIL - unable to set the length
|
||||
|
||||
Notes:
|
||||
This function returns the string length required to store a value from a
|
||||
keyval space.
|
||||
|
||||
@*/
|
||||
int PMI_KVS_Get_value_length_max( int *length );
|
||||
|
||||
/*@
|
||||
PMI_KVS_Put - put a key/value pair in a keyval space
|
||||
|
||||
Input Parameters:
|
||||
+ kvsname - keyval space name
|
||||
. key - key
|
||||
- value - value
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - keyval pair successfully put in keyval space
|
||||
. PMI_ERR_INVALID_KVS - invalid kvsname argument
|
||||
. PMI_ERR_INVALID_KEY - invalid key argument
|
||||
. PMI_ERR_INVALID_VAL - invalid val argument
|
||||
- PMI_FAIL - put failed
|
||||
|
||||
Notes:
|
||||
This function puts the key/value pair in the specified keyval space. The
|
||||
value is not visible to other processes until 'PMI_KVS_Commit()' is called.
|
||||
The function may complete locally. After 'PMI_KVS_Commit()' is called, the
|
||||
value may be retrieved by calling 'PMI_KVS_Get()'. All keys put to a keyval
|
||||
space must be unique to the keyval space. You may not put more than once
|
||||
with the same key.
|
||||
|
||||
@*/
|
||||
int PMI_KVS_Put( const char kvsname[], const char key[], const char value[]);
|
||||
|
||||
/*@
|
||||
PMI_KVS_Commit - commit all previous puts to the keyval space
|
||||
|
||||
Input Parameters:
|
||||
. kvsname - keyval space name
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - commit succeeded
|
||||
. PMI_ERR_INVALID_ARG - invalid argument
|
||||
- PMI_FAIL - commit failed
|
||||
|
||||
Notes:
|
||||
This function commits all previous puts since the last 'PMI_KVS_Commit()' into
|
||||
the specified keyval space. It is a process local operation.
|
||||
|
||||
@*/
|
||||
int PMI_KVS_Commit( const char kvsname[] );
|
||||
|
||||
/*@
|
||||
PMI_KVS_Get - get a key/value pair from a keyval space
|
||||
|
||||
Input Parameters:
|
||||
+ kvsname - keyval space name
|
||||
. key - key
|
||||
- length - length of value character array
|
||||
|
||||
Output Parameters:
|
||||
. value - value
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - get succeeded
|
||||
. PMI_ERR_INVALID_KVS - invalid kvsname argument
|
||||
. PMI_ERR_INVALID_KEY - invalid key argument
|
||||
. PMI_ERR_INVALID_VAL - invalid val argument
|
||||
. PMI_ERR_INVALID_LENGTH - invalid length argument
|
||||
- PMI_FAIL - get failed
|
||||
|
||||
Notes:
|
||||
This function gets the value of the specified key in the keyval space.
|
||||
|
||||
@*/
|
||||
int PMI_KVS_Get( const char kvsname[], const char key[], char value[], int length);
|
||||
|
||||
/* PMI Process Creation functions */
|
||||
|
||||
/*S
|
||||
PMI_keyval_t - keyval structure used by PMI_Spawn_mulitiple
|
||||
|
||||
Fields:
|
||||
+ key - name of the key
|
||||
- val - value of the key
|
||||
|
||||
S*/
|
||||
typedef struct PMI_keyval_t
|
||||
{
|
||||
const char * key;
|
||||
char * val;
|
||||
} PMI_keyval_t;
|
||||
|
||||
/*@
|
||||
PMI_Spawn_multiple - spawn a new set of processes
|
||||
|
||||
Input Parameters:
|
||||
+ count - count of commands
|
||||
. cmds - array of command strings
|
||||
. argvs - array of argv arrays for each command string
|
||||
. maxprocs - array of maximum processes to spawn for each command string
|
||||
. info_keyval_sizes - array giving the number of elements in each of the
|
||||
'info_keyval_vectors'
|
||||
. info_keyval_vectors - array of keyval vector arrays
|
||||
. preput_keyval_size - Number of elements in 'preput_keyval_vector'
|
||||
- preput_keyval_vector - array of keyvals to be pre-put in the spawned keyval space
|
||||
|
||||
Output Parameter:
|
||||
. errors - array of errors for each command
|
||||
|
||||
Return values:
|
||||
+ PMI_SUCCESS - spawn successful
|
||||
. PMI_ERR_INVALID_ARG - invalid argument
|
||||
- PMI_FAIL - spawn failed
|
||||
|
||||
Notes:
|
||||
This function spawns a set of processes into a new process group. The 'count'
|
||||
field refers to the size of the array parameters - 'cmd', 'argvs', 'maxprocs',
|
||||
'info_keyval_sizes' and 'info_keyval_vectors'. The 'preput_keyval_size' refers
|
||||
to the size of the 'preput_keyval_vector' array. The 'preput_keyval_vector'
|
||||
contains keyval pairs that will be put in the keyval space of the newly
|
||||
created process group before the processes are started. The 'maxprocs' array
|
||||
specifies the desired number of processes to create for each 'cmd' string.
|
||||
The actual number of processes may be less than the numbers specified in
|
||||
maxprocs. The acceptable number of processes spawned may be controlled by
|
||||
``soft'' keyvals in the info arrays. The ``soft'' option is specified by
|
||||
mpiexec in the MPI-2 standard. Environment variables may be passed to the
|
||||
spawned processes through PMI implementation specific 'info_keyval' parameters.
|
||||
@*/
|
||||
int PMI_Spawn_multiple(int count,
|
||||
const char * cmds[],
|
||||
const char ** argvs[],
|
||||
const int maxprocs[],
|
||||
const int info_keyval_sizesp[],
|
||||
const PMI_keyval_t * info_keyval_vectors[],
|
||||
int preput_keyval_size,
|
||||
const PMI_keyval_t preput_keyval_vector[],
|
||||
int errors[]);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
58
executer/include/qlmpi.h
Normal file
58
executer/include/qlmpi.h
Normal file
@@ -0,0 +1,58 @@
|
||||
|
||||
#ifndef __HEADER_QLMPI_H
|
||||
#define __HEADER_QLMPI_H
|
||||
|
||||
/* UerProgram executed */
|
||||
#define QL_EXEC_END 'E'
|
||||
/* qlmpiexec_finalize */
|
||||
#define QL_RET_FINAL 'F'
|
||||
/* UserProgram resume */
|
||||
#define QL_RET_RESUME 'R'
|
||||
/* Connect from ql_mpiexec_start/Finalize*/
|
||||
#define QL_COM_CONN 'N'
|
||||
/* Abnormal end */
|
||||
#define QL_AB_END 'A'
|
||||
|
||||
/* Client kind */
|
||||
/* mpiexec moniter Program */
|
||||
#define QL_MONITOR 1
|
||||
/* mcexec */
|
||||
#define QL_MCEXEC_PRO 2
|
||||
/* ql_mcexec_start ql_mpiexec_finalize */
|
||||
#define QL_MPEXEC 3
|
||||
|
||||
|
||||
#define QL_SOCK "ql_sock"
|
||||
|
||||
#define QL_MAX_PATH 4096
|
||||
#define QL_PARAM_PATH "./"
|
||||
#define QL_PARAM_EXTE ".param"
|
||||
#define QL_SWAP_PATH "/tmp"
|
||||
#define QL_SOCKT_PATH "/run/user"
|
||||
|
||||
#define QL_NAME "QL_NAME"
|
||||
#define QL_SWAP_ENV "QL_SWAP_PATH"
|
||||
#define QL_PARAM_ENV "QL_PARAM_PATH"
|
||||
#define QL_SOCK_ENV "QL_SOCKET_PATH"
|
||||
|
||||
#define QL_BUF_MAX 256
|
||||
|
||||
|
||||
struct client_fd {
|
||||
int fd; //FD
|
||||
int client; //Client Kind
|
||||
char *name; //QL_NAME
|
||||
int status; //execute status
|
||||
};
|
||||
|
||||
int ql_recv(int fd,char ** buf);
|
||||
|
||||
int ql_send(int fd,int command,char *buf);
|
||||
|
||||
|
||||
#define QL_COMMAND '0'
|
||||
#define QL_ARG '1'
|
||||
#define QL_ENV '2'
|
||||
|
||||
//#define QL_DEBUG
|
||||
#endif
|
||||
10
executer/include/qlmpilib.h
Normal file
10
executer/include/qlmpilib.h
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
#ifndef __HEADER_QLMPILIB_H
|
||||
#define __HEADER_QLMPILIB_H
|
||||
|
||||
int ql_client(int *argc, char ***argv);
|
||||
|
||||
#define QL_CONTINUE 1
|
||||
#define QL_EXIT 0
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user