forked from JointCloud/pcm-hpc
287 lines
18 KiB
Protocol Buffer
287 lines
18 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package hpcTH;
|
|
option go_package = "/hpcTH";
|
|
|
|
/******************Job Start*************************/
|
|
message job{
|
|
string account = 1; // @gotags: copier:"Account"
|
|
string alloc_node = 2; // @gotags: copier:"AllocNode"
|
|
uint32 alloc_sid = 3; // @gotags: copier:"AllocSid"
|
|
uint32 array_job_id = 4; // @gotags: copier:"ArrayJobId"
|
|
uint32 array_task_id = 5; // @gotags: copier:"ArrayTaskId"
|
|
uint32 assoc_id = 6; // @gotags: copier:"AssocId"
|
|
uint32 batch_flag = 7; // @gotags: copier:"BatchFlag"
|
|
string batch_host = 8; // @gotags: copier:"BatchHost"
|
|
string batch_script = 9; // @gotags: copier:"BatchScript"
|
|
string command = 10; // @gotags: copier:"Command"
|
|
string comment = 11; // @gotags: copier:"Comment"
|
|
uint32 contiguous = 12; // @gotags: copier:"Contiguous"
|
|
uint32 cpus_per_task = 13; // @gotags: copier:"CpusPerTask"
|
|
string dependency = 14; // @gotags: copier:"Dependency"
|
|
uint32 derived_ec = 15; // @gotags: copier:"DerivedEc"
|
|
int64 eligible_time = 16; // @gotags: copier:"EligibleTime"
|
|
int64 end_time = 17; // @gotags: copier:"EndTime"
|
|
string exc_nodes = 18; // @gotags: copier:"ExcNodes"
|
|
int32 exc_node_inx = 19; // @gotags: copier:"ExcNodeInx"
|
|
uint32 exit_code = 20; // @gotags: copier:"ExitCode"
|
|
string features = 21; // @gotags: copier:"Features"
|
|
string gres = 22; // @gotags: copier:"Gres"
|
|
uint32 group_id = 23; // @gotags: copier:"GroupId"
|
|
uint32 job_id = 24; // @gotags: copier:"JobId"
|
|
uint32 job_state = 25; // @gotags: copier:"JobState"
|
|
string licenses = 26; // @gotags: copier:"Licenses"
|
|
uint32 max_cpus = 27; // @gotags: copier:"MaxCpus"
|
|
uint32 max_nodes = 28; // @gotags: copier:"MaxNodes"
|
|
uint32 boards_per_node = 29; // @gotags: copier:"BoardsPerNode"
|
|
uint32 sockets_per_board = 30; // @gotags: copier:"SocketsPerBoard"
|
|
uint32 sockets_per_node = 31; // @gotags: copier:"SocketsPerNode"
|
|
uint32 cores_per_socket = 32; // @gotags: copier:"CoresPerSocket"
|
|
uint32 threads_per_core = 33; // @gotags: copier:"ThreadsPerCore"
|
|
string name = 34; // @gotags: copier:"Name"
|
|
string network = 35; // @gotags: copier:"Network"
|
|
string nodes = 36; // @gotags: copier:"Nodes"
|
|
uint32 nice = 37; // @gotags: copier:"Nice"
|
|
int32 node_inx = 38; // @gotags: copier:"NodeInx"
|
|
uint32 ntasks_per_core = 39; // @gotags: copier:"NtasksPerCore"
|
|
uint32 ntasks_per_node = 40; // @gotags: copier:"NtasksPerNode"
|
|
uint32 ntasks_per_socket = 41; // @gotags: copier:"NtasksPerSocket"
|
|
uint32 ntasks_per_board = 42; // @gotags: copier:"NtasksPerBoard"
|
|
uint32 num_nodes = 43; // @gotags: copier:"NumNodes"
|
|
uint32 num_cpus = 44; // @gotags: copier:"NumCpus"
|
|
string partition = 45; // @gotags: copier:"Partition"
|
|
uint32 pn_min_memory = 46; // @gotags: copier:"PnMinMemory"
|
|
uint32 pn_min_cpus = 47; // @gotags: copier:"PnMinCpus"
|
|
uint32 pn_min_tmp_disk = 48; // @gotags: copier:"PnMinTmpDisk"
|
|
int64 pre_sus_time = 49; // @gotags: copier:"PreSusTime"
|
|
uint32 priority = 50; // @gotags: copier:"Priority"
|
|
uint32 profile = 51; // @gotags: copier:"Profile"
|
|
string qos = 52; // @gotags: copier:"Qos"
|
|
string req_nodes = 53; // @gotags: copier:"ReqNodes"
|
|
int32 req_node_inx = 54; // @gotags: copier:"ReqNodeInx"
|
|
uint32 req_switch = 55; // @gotags: copier:"ReqSwitch"
|
|
uint32 requeue = 56; // @gotags: copier:"Requeue"
|
|
int64 resize_time = 57; // @gotags: copier:"ResizeTime"
|
|
uint32 restart_cnt = 58; // @gotags: copier:"RestartCnt"
|
|
string resv_name = 59; // @gotags: copier:"ResvName"
|
|
uint32 shared = 60; // @gotags: copier:"Shared"
|
|
uint32 show_flags = 61; // @gotags: copier:"ShowFlags"
|
|
int64 start_time = 62; // @gotags: copier:"StartTime"
|
|
string state_desc = 63; // @gotags: copier:"StateDesc"
|
|
uint32 state_reason = 64; // @gotags: copier:"StateReason"
|
|
int64 submit_time = 65; // @gotags: copier:"SubmitTime"
|
|
int64 suspend_time = 66; // @gotags: copier:"SuspendTime"
|
|
uint32 time_limit = 67; // @gotags: copier:"TimeLimit"
|
|
uint32 time_min = 68; // @gotags: copier:"TimeMin"
|
|
uint32 user_id = 69; // @gotags: copier:"UserId"
|
|
int64 preempt_time = 70; // @gotags: copier:"PreemptTime"
|
|
uint32 wait4switch = 71; // @gotags: copier:"Wait4Switch"
|
|
string wckey = 72; // @gotags: copier:"Wckey"
|
|
string work_dir = 73; // @gotags: copier:"WorkDir"
|
|
}
|
|
|
|
message ListJobReq{
|
|
}
|
|
|
|
message ListJobResp{
|
|
uint32 code = 1; // @gotags: copier:"Code"
|
|
string msg = 2; // @gotags: copier:"Msg"
|
|
uint32 record_count = 3; // @gotags: copier:"RecordCount"
|
|
repeated job jobs = 4; // @gotags: copier:"Jobs"
|
|
}
|
|
/******************Job End*************************/
|
|
|
|
|
|
/******************History Job Start*************************/
|
|
message historyJob{
|
|
uint32 alloc_cpu = 1; // @gotags: copier:"AllocCPU"
|
|
uint32 alloc_nodes = 2; // @gotags: copier:"AllocNodes"
|
|
string account = 3; // @gotags: copier:"Account"
|
|
uint32 associd = 4; // @gotags: copier:"AssocId"
|
|
string blockid = 5; // @gotags: copier:"BlockId"
|
|
string cluster = 6; // @gotags: copier:"Cluster"
|
|
uint32 derived_ec = 7; // @gotags: copier:"DerivedEc"
|
|
string derived_es = 8; // @gotags: copier:"DerivedEs"
|
|
uint32 elapsed = 9; // @gotags: copier:"Elapsed"
|
|
int64 eligible = 10;// @gotags: copier:"Eligible"
|
|
int64 end = 11;// @gotags: copier:"End"
|
|
uint32 exitcode = 12;// @gotags: copier:"ExitCode"
|
|
uint32 gid = 13;// @gotags: copier:"Gid"
|
|
uint32 jobid = 14;// @gotags: copier:"JobId"
|
|
string jobname = 15;// @gotags: copier:"JobName"
|
|
uint32 lft = 16;// @gotags: copier:"Lft"
|
|
string partition = 17;// @gotags: copier:"Partition"
|
|
string nodes = 18;// @gotags: copier:"Nodes"
|
|
uint32 priority = 19;// @gotags: copier:"Priority"
|
|
uint32 qosid = 20;// @gotags: copier:"Qosid"
|
|
uint32 req_cpus = 21;// @gotags: copier:"ReqCpus"
|
|
uint32 req_mem = 22;// @gotags: copier:"ReqMem"
|
|
uint32 requid = 23;// @gotags: copier:"Requid"
|
|
uint32 resvid = 24;// @gotags: copier:"Resvid"
|
|
uint32 show_full = 25;// @gotags: copier:"ShowFull"
|
|
int64 start = 26;// @gotags: copier:"Start"
|
|
uint32 state = 27;// @gotags: copier:"State"
|
|
int64 submit = 28;// @gotags: copier:"Submit"
|
|
uint32 suspended = 29;// @gotags: copier:"Suspended"
|
|
uint32 sys_cpu_sec = 30;// @gotags: copier:"SysCpuSec"
|
|
uint32 sys_cpu_usec = 31;// @gotags: copier:"SysCpuUsec"
|
|
uint32 timelimit = 32;// @gotags: copier:"Timelimit"
|
|
uint32 tot_cpu_sec = 33;// @gotags: copier:"TotCpuSec"
|
|
uint32 tot_cpu_usec = 34;// @gotags: copier:"TotCpuUsec"
|
|
uint32 track_steps = 35;// @gotags: copier:"TrackSteps"
|
|
uint32 uid = 36;// @gotags: copier:"Uid"
|
|
string user = 37;// @gotags: copier:"User"
|
|
uint32 user_cpu_sec = 38;// @gotags: copier:"UserCpuSec"
|
|
uint32 user_cpu_usec = 39;// @gotags: copier:"UserCpuUsec"
|
|
string wckey = 40;// @gotags: copier:"Wckey"
|
|
uint32 wckeyid = 41;// @gotags: copier:"Wckeyid"
|
|
}
|
|
|
|
message ListHistoryJobReq{
|
|
}
|
|
|
|
message ListHistoryJobResp{
|
|
|
|
uint32 code = 1; // @gotags: copier:"Code"
|
|
string msg = 2; // @gotags: copier:"Msg"
|
|
uint32 record_count = 3; // @gotags: copier:"RecordCount"
|
|
repeated historyJob history_jobs = 4; // @gotags: copier:"HistoryJobs"
|
|
}
|
|
/******************History Job End*************************/
|
|
|
|
|
|
/******************Job(Submit) Start*************************/
|
|
message SubmitJobReq{
|
|
string account =1; // @gotags: copier:"account" /* charge to specified account */
|
|
string acctg_freq =2; // @gotags: copier:"acctg_freq" /* accounting polling intervals (seconds) */
|
|
string alloc_node=3; // @gotags: copier:"alloc_node" /* node making resource allocation request * NOTE: Normally set by slurm_submit* or * slurm_allocate* function */
|
|
uint32 alloc_resp_port=4; // @gotags: copier:"alloc_resp_port" /* port to send allocation confirmation to */
|
|
uint32 alloc_sid =5; // @gotags: copier:"alloc_sid" /* local sid making resource allocation request * NOTE: Normally set by slurm_submit* or * slurm_allocate* function * NOTE: Also used for update flags, see * ALLOC_SID_* flags */
|
|
uint32 argc =6; // @gotags: copier:"argc" /* number of arguments to the script */
|
|
repeated Argv argv = 7; // @gotags: copier:"Argv" /* arguments to the script */
|
|
string array_inx =8; // @gotags: copier:"array_inx" /* job array index values */ //void *array_bitmap; /* NOTE: Set by slurmctld */
|
|
int64 begin_time = 9; // @gotags: copier:"begin_time" /* delay initiation until this time */
|
|
uint32 ckpt_interval=10; // @gotags: copier:"ckpt_interval" /* periodically checkpoint this job */
|
|
string ckpt_dir =11; // @gotags: copier:"ckpt_dir" /* directory to store checkpoint images */
|
|
string comment =12; // @gotags: copier:"comment" /* arbitrary comment (used by Moab scheduler) */
|
|
uint32 contiguous=13; // @gotags: copier:"contiguous" /* 1 if job requires contiguous nodes,* 0 otherwise,default=0 */
|
|
string cpu_bind=14; // @gotags: copier:"cpu_bind" /* binding map for map/mask_cpu */
|
|
uint32 cpu_bind_type=15; // @gotags: copier:"cpu_bind_type" /* see cpu_bind_type_t */
|
|
string dependency =16; // @gotags: copier:"dependency" /* synchronize job execution with other jobs */
|
|
int64 end_time=17; // @gotags: copier:"end_time" /* time by which job must complete, used for * job update only now, possible deadline * scheduling in the future */
|
|
repeated Environment environment=18; // @gotags: copier:"Environment" /* environment variables to set for job, * name=value pairs, one per line */
|
|
uint32 env_size =19; // @gotags: copier:"env_size" /* element count in environment */
|
|
string exc_nodes =20; // @gotags: copier:"exc_nodes" /* comma separated list of nodes excluded * from job's allocation, default NONE */
|
|
string features =21; // @gotags: copier:"features" /* comma separated list of required features, * default NONE */
|
|
string gres =22; // @gotags: copier:"gres" /* comma separated list of required generic * resources, default NONE */
|
|
uint32 group_id =23; // @gotags: copier:"group_id" /* group to assume, if run as root. */
|
|
uint32 immediate=24; // @gotags: copier:"immediate" /* 1 if allocate to run or fail immediately, * 0 if to be queued awaiting resources */
|
|
uint32 job_id =25; // @gotags: copier:"job_id" /* job ID, default set by SLURM */
|
|
uint32 kill_on_node_fail=26; // @gotags: copier:"kill_on_node_fail" /* 1 if node failure to kill job, * 0 otherwise,default=1 */
|
|
string licenses=27; // @gotags: copier:"licenses" /* licenses required by the job */
|
|
uint32 mail_type=28; // @gotags: copier:"mail_type" /* see MAIL_JOB_ definitions above */
|
|
string mail_user =29; // @gotags: copier:"mail_user" /* user to receive notification */
|
|
string mem_bind =30; // @gotags: copier:"mem_bind" /* binding map for map/mask_cpu */
|
|
uint32 mem_bind_type=31; // @gotags: copier:"mem_bind_type" /* see mem_bind_type_t */
|
|
string name =32; // @gotags: copier:"name" /* name of the job, default "" */
|
|
string network=33; // @gotags: copier:"network" /* network use spec */
|
|
uint32 nice =34; // @gotags: copier:"nice" /* requested priority change, * NICE_OFFSET == no change */
|
|
uint32 num_tasks=35; // @gotags: copier:"num_tasks" /* number of tasks to be started, * for batch only */
|
|
uint32 open_mode=36; // @gotags: copier:"open_mode" /* out/err open mode truncate or append, * see OPEN_MODE_* */
|
|
uint32 other_port=37; // @gotags: copier:"other_port" /* port to send various notification msg to */
|
|
uint32 overcommit =38; // @gotags: copier:"overcommit" /* over subscribe resources, for batch only */
|
|
string partition=39; // @gotags: copier:"partition" /* name of requested partition, * default in SLURM config */
|
|
uint32 plane_size =40; // @gotags: copier:"plane_size" /* plane size when task_dist = SLURM_DIST_PLANE */
|
|
uint32 priority =41; // @gotags: copier:"priority" /* relative priority of the job, * explicitly set only for user root, * 0 == held (don't initiate) */
|
|
uint32 profile =42; // @gotags: copier:"profile" /* Level of acct_gather_profile {all | none} */
|
|
string qos =43; // @gotags: copier:"qos" /* Quality of Service */
|
|
string resp_host=44; // @gotags: copier:"resp_host" /* NOTE: Set by slurmctld */
|
|
string req_nodes=45; // @gotags: copier:"req_nodes" /* comma separated list of required nodes * default NONE */
|
|
uint32 requeue=46; // @gotags: copier:"requeue" /* enable or disable job requeue option */
|
|
string reservation=47; // @gotags: copier:"reservation" /* name of reservation to use */
|
|
string script=48; // @gotags: copier:"script" /* the actual job script, default NONE */
|
|
uint32 shared =49; // @gotags: copier:"shared" /* 1 if job can share nodes with other jobs, * 0 if job needs exclusive access to the node, * or NO_VAL to accept the system default. * SHARED_FORCE to eliminate user control. */ //char **spank_job_env; environment variables for job prolog/epilog // * scripts as set by SPANK plugins
|
|
uint32 spank_job_env_size=50; // @gotags: copier:"spank_job_env_size" /* element count in spank_env */
|
|
uint32 task_dist =51; // @gotags: copier:"task_dist" /* see enum task_dist_state */
|
|
uint32 time_limit =52; // @gotags: copier:"time_limit" /* maximum run time in minutes, default is * partition limit */
|
|
uint32 time_min =53; // @gotags: copier:"time_min" /* minimum run time in minutes, default is * time_limit */
|
|
uint32 user_id=54; // @gotags: copier:"user_id" /* set only if different from current UID, * can only be explicitly set by user root */
|
|
uint32 wait_all_nodes=55; // @gotags: copier:"wait_all_nodes" /* 0 to start job immediately after allocation * 1 to start job after all nodes booted * or NO_VAL to use system default */
|
|
uint32 warn_signal=56; // @gotags: copier:"warn_signal" /* signal to send when approaching end time */
|
|
uint32 warn_time=57; // @gotags: copier:"warn_time" /* time before end to send signal (seconds) */
|
|
string work_dir =58; // @gotags: copier:"work_dir" /* pathname of working directory */ /* job constraints: */
|
|
uint32 cpus_per_task=59; // @gotags: copier:"cpus_per_task" /* number of processors required for * each task */
|
|
uint32 min_cpus =60; // @gotags: copier:"min_cpus" /* minimum number of processors required, * default=0 */
|
|
uint32 max_cpus=61; // @gotags: copier:"max_cpus" /* maximum number of processors required, * default=0 */
|
|
uint32 min_nodes=62; // @gotags: copier:"min_nodes" /* minimum number of nodes required by job, * default=0 */
|
|
uint32 max_nodes=63; // @gotags: copier:"max_nodes" /* maximum number of nodes usable by job, * default=0 */
|
|
uint32 boards_per_node =64; // @gotags: copier:"boards_per_node" /* boards per node required by job */
|
|
uint32 sockets_per_board=65; // @gotags: copier:"sockets_per_board" /* sockets per board required by job */
|
|
uint32 sockets_per_node =66; // @gotags: copier:"sockets_per_node" /* sockets per node required by job */
|
|
uint32 cores_per_socket=67; // @gotags: copier:"cores_per_socket" /* cores per socket required by job */
|
|
uint32 threads_per_core=68; // @gotags: copier:"threads_per_core" /* threads per core required by job */
|
|
uint32 ntasks_per_node =69; // @gotags: copier:"ntasks_per_node" /* number of tasks to invoke on each node */
|
|
uint32 ntasks_per_socket=70; // @gotags: copier:"ntasks_per_socket" /* number of tasks to invoke on * each socket */
|
|
uint32 ntasks_per_core =71; // @gotags: copier:"ntasks_per_core" /* number of tasks to invoke on each core */
|
|
uint32 ntasks_per_board=72; // @gotags: copier:"ntasks_per_board" /* number of tasks to invoke on each board */
|
|
uint32 pn_min_cpus =73; // @gotags: copier:"pn_min_cpus" /* minimum # CPUs per node, default=0 */
|
|
uint32 pn_min_memory=74; // @gotags: copier:"pn_min_memory" /* minimum real memory per node OR * real memory per CPU | MEM_PER_CPU, * default=0 (no limit) */
|
|
uint32 pn_min_tmp_disk =75; // @gotags: copier:"pn_min_tmp_disk" /* minimum tmp disk per node, * default=0 */
|
|
/*
|
|
* The following parameters are only meaningful on a Blue Gene
|
|
* system at present. Some will be of value on other system. Don't remove these
|
|
* they are needed for LCRM and others that can't talk to the opaque data type
|
|
* select_jobinfo.
|
|
*/
|
|
//uint16_t geometry[HIGHEST_DIMENSIONS]; node count in various // * dimensions, e.g. X, Y, and Z
|
|
//uint16_t conn_type[HIGHEST_DIMENSIONS]; see enum connection_type
|
|
uint32 reboot=76; // @gotags: copier:"reboot" /* force node reboot before startup */
|
|
uint32 rotate=77; // @gotags: copier:"rotate" /* permit geometry rotation if set */
|
|
//char *blrtsimage; /* BlrtsImage for block */
|
|
//char *linuximage; /* LinuxImage for block */
|
|
//char *mloaderimage; /* MloaderImage for block */
|
|
//char *ramdiskimage; /* RamDiskImage for block */
|
|
/* End of Blue Gene specific values */
|
|
|
|
uint32 req_switch =78; // @gotags: copier:"req_switch" /* Minimum number of switches */ //dynamic_plugin_data_t *select_jobinfo; /* opaque data type, // * SLURM internal use only */
|
|
string std_err=79; // @gotags: copier:"std_err" /* pathname of stderr */
|
|
string std_in =80; // @gotags: copier:"std_in" /* pathname of stdin */
|
|
string std_out=81; // @gotags: copier:"std_out" /* pathname of stdout */
|
|
uint32 wait4switch=82; // @gotags: copier:"wait4switch" /* Maximum time to wait for minimum switches */
|
|
string wckey =83; // @gotags: copier:"wckey" /* wckey for job */
|
|
}
|
|
|
|
message SubmitJobResp{
|
|
repeated SubmitResponseMsg submit_response_msg = 1;
|
|
}
|
|
|
|
message SubmitResponseMsg{
|
|
uint32 job_id = 1;
|
|
uint32 step_id =2;
|
|
uint32 error_code=3;
|
|
}
|
|
|
|
message Argv{
|
|
string argv =1; // @gotags: copier:"argv"
|
|
}
|
|
|
|
message Environment{
|
|
string environment =1; // @gotags: copier:"environment"
|
|
}
|
|
/******************Job(Submit) End*************************/
|
|
|
|
|
|
// hpc Services for Tianhe
|
|
service hpcTH {
|
|
|
|
//ListJob list all jobs
|
|
rpc ListJob(ListJobReq) returns (ListJobResp);
|
|
|
|
//ListHistoryJob list all history jobs
|
|
rpc ListHistoryJob(ListHistoryJobReq) returns (ListHistoryJobResp);
|
|
|
|
//Submit job
|
|
rpc SubmitJob(SubmitJobReq) returns (SubmitJobResp);
|
|
|
|
|
|
} |