update docs.
This commit is contained in:
parent
1bc66f7c81
commit
2aa25c7c37
|
@ -5,7 +5,8 @@ import (
|
|||
"fmt"
|
||||
"os"
|
||||
|
||||
scalebox "github.com/kaichao/scalebox/golang/misc"
|
||||
misc "github.com/kaichao/scalebox/golang/misc"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
|
@ -60,7 +61,7 @@ func init() {
|
|||
os.Exit(1)
|
||||
}
|
||||
|
||||
if lines, err := scalebox.GetTextFileLines(datasetFile); err == nil {
|
||||
if lines, err := misc.GetTextFileLines(datasetFile); err == nil {
|
||||
for _, line := range lines {
|
||||
dataset := parseDataSet(line)
|
||||
fmt.Println("loaded dataset-id:", dataset.DatasetID, "dataset:", dataset)
|
||||
|
|
|
@ -4,7 +4,7 @@ import (
|
|||
"database/sql"
|
||||
"os"
|
||||
|
||||
scalebox "github.com/kaichao/scalebox/golang/misc"
|
||||
"github.com/kaichao/scalebox/golang/misc"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
|
@ -19,7 +19,7 @@ func init() {
|
|||
workDir = "/work"
|
||||
}
|
||||
sqliteFile := workDir + "/my.db"
|
||||
scalebox.ExecShellCommand("rm -f " + sqliteFile)
|
||||
misc.ExecShellCommand("rm -f " + sqliteFile)
|
||||
}
|
||||
|
||||
func initialize() {
|
||||
|
|
|
@ -12,6 +12,7 @@ cluster: ${CLUSTER}
|
|||
parameters:
|
||||
initial_status: RUNNING
|
||||
message_router: message-router
|
||||
is_cluster_admin: yes
|
||||
default_sleep_count: 20
|
||||
comment: This is a sample app.
|
||||
|
||||
|
@ -175,7 +176,7 @@ cluster定义的示例如下:
|
|||
|
||||
### 2.5.1 job-variables参数表
|
||||
|
||||
| 参数名 | 标准环境变量 | 含义 |
|
||||
| 参数名 | 标准环境变量 | 含义 |
|
||||
| ------------------------ | ---------------------- | --------------------------------------------------------------------------------------------------------------- |
|
||||
| grpc_server | GRPC_SERVER | 服务端controld的服务端点(endpoint),${ip_addr}:${port},port缺省值为50051 |
|
||||
| code_path | | 模块的代码目录,通过容器的数据卷Volume映射到容器内/app/bin |
|
||||
|
@ -204,8 +205,9 @@ cluster定义的示例如下:
|
|||
| | CLUSTER | 所在的集群名 |
|
||||
| | JOB_NAME | job名 |
|
||||
| | JOB_ID | job_id |
|
||||
| | SLOT_ID | slot_id |
|
||||
| | SINK_JOB | 缺省sink_job |
|
||||
| | IS_SINGULARITY | 容器引擎为singularity或app-tainer |
|
||||
| | IS_SINGULARITY | 容器引擎为singularity或apptainer |
|
||||
|
||||
### 2.5.2 job-parameters参数表
|
||||
|
||||
|
@ -215,6 +217,8 @@ cluster定义的示例如下:
|
|||
| key_group_regex | 从消息中提取分组的正则表达式 |
|
||||
| key_group_index | 分组排序的编号 |
|
||||
| task_dist_mode | task分发模式,'HOST-BOUND'/'SLOT-BOUND'/'GROUP-BOUND' |
|
||||
| cached_task_queue | 在服务端对task_queue做cache,'yes'/'no',缺省为'no'。若设置为'yes',则len_task_queue缺省值为500 |
|
||||
| len_task_queue | task_queue的长度。若设置该值,则cached_task_queue设为'yes' ; |
|
||||
| slot_on_head | 仅在头节点上生成1个slot,'yes'/'no' |
|
||||
| start_message | 给定初始消息 |
|
||||
| initial_task_status | task的初始状态,'READY'/'INITIAL' |
|
||||
|
@ -222,8 +226,8 @@ cluster定义的示例如下:
|
|||
| retry_rules | 基于退出码的重试规则<br>```['exit_code_1:num_retries',...,'exit_code_n:num_retries']``` |
|
||||
| slot_timeout_seconds | 以秒计的slot超时设置。缺省值为30秒 |
|
||||
| visiable | 在流水线逻辑图中是否可见。缺省值为'yes' |
|
||||
| tasks_per_queue | in-mem模式中,task队列长度。缺省值为100 |
|
||||
| max_tasks_per_minute | 设置slot每分钟可运行的task数量,超过该值,则设置slot出错。 |
|
||||
| tasks_per_queue | in-mem模式中,task队列长度。缺省值为100(待删除) |
|
||||
| max_tasks_per_minute | 设置slot每分钟可运行的task数量,超过该值,说明该slot异常,则设置为出错。 |
|
||||
| message_router_index | 多消息路由的应用环境中,指定当前job发给第n个消息路由。缺省值为0,通常设置值>0 |
|
||||
|
||||
### 2.5.3 task-headers参数表
|
||||
|
@ -238,3 +242,15 @@ cluster定义的示例如下:
|
|||
| to_slot | |
|
||||
| slot_broadcast | 仅用于cli的命令行参数 |
|
||||
| host_broadcast | 仅用于cli的命令行参数 |
|
||||
|
||||
### 2.5.4 host-parameters参数表
|
||||
|
||||
| 参数名称 | 含义 |
|
||||
| --------------- | ----------------------------- |
|
||||
| uname | ssh登录用户名 |
|
||||
| port | ssh的端口号 |
|
||||
| node_slot | 该节点node-agent的slot号 |
|
||||
| group_id | 该节点所属节点组的编号 |
|
||||
| slurm_node | 在slurm调度系统中对应的节点编号 |
|
||||
| reg_time | 在scalebox中注册时间 |
|
||||
| slot_job_id | 在slurm调度系统重,node-agent的slurm job id |
|
||||
|
|
|
@ -70,6 +70,9 @@ graph LR
|
|||
|
||||
### task add {#task-add}
|
||||
|
||||
key-text可放在文件 ```${WORK_DIR}/key-text.txt```,该文件为多行文本,每行为一个消息体。
|
||||
|
||||
|
||||
## 1.5 scalebox semaphore 子命令{#semaphore}
|
||||
|
||||
### 1.5.1 semaphore create{#semaphore-create}
|
||||
|
|
|
@ -20,6 +20,25 @@
|
|||
- 自建服务器集群(不带虚拟化)
|
||||
- HPC计算节点
|
||||
|
||||
|
||||
本地计算的主要技术问题
|
||||
- 前后job间的流控
|
||||
- 运行速度匹配,避免本地硬盘/内存爆满
|
||||
- 信号量是实现流控的技术手段
|
||||
- 同一job在多节点间同步流控
|
||||
- 不同通道的处理/不同节点的数据下载
|
||||
- 节点处理能力差异,因此中间数据累积,导致内存爆满
|
||||
- 自动容错处理
|
||||
- 出错影响部分数据的处理
|
||||
- 流控会导致整个流水线停止
|
||||
- 自动容错对流控的影响
|
||||
- 关键job的task处理排序
|
||||
- 非关键模块分解
|
||||
- 细分会增加流控负担
|
||||
- 增加流水线并行提升性能,会增加中间存储的内存使用,影响流水线运行的稳定性
|
||||
|
||||
|
||||
|
||||
## 6.4 消息路由
|
||||
|
||||
开启task头获取功能。
|
||||
|
|
|
@ -28,5 +28,5 @@ Scalebox还可应用于复杂算法处理的应用场景,通过容器化封装
|
|||
Scalebox基于server端做计算模块间通信,针对小数据块的高频度通信,其效率相对较低。因而不适用于通信密集型并行计算。
|
||||
|
||||
包括以下类型:
|
||||
- 科学仿真和建模:包括天气预报、气候建模、地震模拟、流体动力学、空气动力学等领域的应用。这些应用通常涉及大量的数学计算和复杂的物理模型,需要大规模的计算资源来进行模拟和预测。
|
||||
- 分子动力学模拟:用于研究分子结构和化学反应动力学的应用。分子动力学模拟可以帮助科学家理解生物分子的结构和功能,设计新的药物,并研究材料的性质和行为。
|
||||
- 科学仿真和建模:包括天气预报、气候建模、地震模拟、流体动力学、空气动力学等领域的科学计算。这些应用通常涉及大量的数学计算和复杂的物理模型,计算过程中涉及到高频度通信。
|
||||
- 分子动力学模拟:用于研究分子结构和化学反应动力学的过程模拟,该计算过程同样需要高频度通信。
|
||||
|
|
Loading…
Reference in New Issue