📄 v2run.h
字号:
/* MPICH-V2 Copyright (C) 2002, 2003 Groupe Cluster et Grid, LRI, Universite de Paris Sud This file is part of MPICH-V2. MPICH-V2 is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. MPICH-V2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with MPICH-V2; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA $Id: v2run.h,v 1.13 2004/07/22 12:49:16 bouziane Exp $*//* All the declarations for v2run, mpichvrun_proprietary, ...*/#ifndef __V2RUN_H__#define __V2RUN_H__ 1#include "vrun_generic.h"#define CHECKPOINT 0#define RESTART 1/* The following is used to make sure that after a certain amount of time, everything is closed after the first MPI_Finalize has been made (units: seconds) */#define FINALIZE_TIMEOUT 10#include <netinet/in.h>/* static char *typesString[] = { "EL", "CS", "SC", "CN" }; *//* Node, EL, CS, SC, CN, AM, ... structs*/typedef struct computingNode { int rank; char hostName[64]; char ipAddress[IP_LENGTH]; char fastIpAddress[IP_LENGTH]; /* For high performance networks */ int communicationPort; char eventLogger[IP_LENGTH]; int eventLoggerPort; char checkpointServer[IP_LENGTH]; int checkpointServerPort; char checkpointScheduler[IP_LENGTH]; int checkpointSchedulerPort; pid_t pid; /* Just to kill... */ boolean autoLaunch; /* For debug purposes */ char debugString[255]; /* For debug purposes */ struct computingNode * next;} CN; /* as in 'Computing Node */typedef struct eventLogger { char ipAddress[IP_LENGTH]; char fastIpAddress[IP_LENGTH]; int port; pid_t pid; boolean autoLaunch; /* For debug purposes */ char debugString[255]; /* For debug purposes */ struct eventLogger * next;} EL; /* Event Logger */typedef struct checkpointServer { char ipAddress[IP_LENGTH]; char fastIpAddress[IP_LENGTH]; int port; char tmp[128]; pid_t pid; boolean autoLaunch; /* For debug purposes */ char debugString[255]; /* For debug purposes */ struct checkpointServer * next;} CS; /* Checkpoint server */typedef struct checkpointScheduler { char ipAddress[IP_LENGTH]; char fastIpAddress[IP_LENGTH]; int port; pid_t pid; boolean autoLaunch; /* For debug purposes */ char debugString[255]; /* For debug purposes */ struct checkpointScheduler * next;} SC; /* Checkpoint Scheduler */typedef struct availableMachine { char hostName[64]; char ipAddress[IP_LENGTH]; int nprocs; int eventLoggerPort; int checkpointServerPort; boolean dualCapabilities; struct availableMachine * next;} AM; /* Available Machine */typedef struct auxiliaryProgram { char ipAddress[IP_LENGTH]; int type; struct auxiliaryProgram * next;} AP; /* This struct is used to know if all auxiliary programs have been successfully launched */typedef struct pidList { int pid; struct pidList * next;} PL; /* struct used to know all the pids running on a machine */#define MAX_NODE_NUM 256typedef struct jobSpecifications { int jobId; int nprocs; char v2pgFile[PATH_LENGTH]; char v2cmdsFile[PATH_LENGTH]; char v2availFile[PATH_LENGTH]; char v2tmp[PATH_LENGTH]; char rshCmd[PATH_LENGTH]; char progCmd[PATH_LENGTH]; char csCmd[PATH_LENGTH]; char elCmd[PATH_LENGTH]; char scCmd[PATH_LENGTH]; char killCmd[PATH_LENGTH]; char *v2dCmd; char pwd[PATH_LENGTH]; char dispatcherIP[IP_LENGTH]; int dispatcherPort; int checkpointFrequency; struct sockaddr_in nodeListArray[MAX_NODE_NUM]; char debugCommand[PATH_LENGTH]; char debugFile[PATH_LENGTH]; char fifoFile[PATH_LENGTH+30]; // int nbrJobSimultaneous; int noCkptServer; char masterIP [IP_LENGTH]; char * masterString; int masterPort; boolean autoLaunch; boolean testOnly; boolean slowEl; boolean localckpt; int memstat; CN * nodeList; EL * elList; CS * csList; SC * scList;} JS;typedef struct connected { int rank; int socket; boolean finalized; struct connected * next;} Connected;/* Prototypes*/void bailout(JS *);void cleanELCS();void v2Error(char *);void logMessage(char *);void cleanMemory();void addAuxiliary(char[15], int);void createFifoFile(JS *);void addConnectedNode(int, int);void v2logMessage(char *);void setcurrentConnected ( int rank, int acceptSocket);/* More prototypes for v2run_internals.c*/void nodeCommandLine(char *, int, JS *, CN);void parseProgramFile(JS *);void pareCommandsFile(char *, JS *);void moveExecutionOneNode(JS *, int, char *, char[IP_LENGTH], char[IP_LENGTH], int);void killAllAuxiliaries(JS *);void cleanAuxiliaryFiles(JS *);void killFromIPpID(JS *, char *, pid_t);void killComputingNode(JS *, CN *);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -