⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 v2run.h

📁 Path MPICH-V for MPICH the MPI Implementation
💻 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 + -