SimGrid 中的并行任务
Parallel task in SimGrid
此信息来自 simgrid documentation 如何创建并行任务:
msg_task_t MSG_parallel_task_create (const char * name,
int host_nb,
const msg_host_t * host_list,
double * flops_amount,
double * bytes_amount,
void * data
)
创建此并行任务后应该使用哪个MSG_task_send
函数发送到多个邮箱?
在主机上执行我应该使用msg_error_t MSG_parallel_task_execute (msg_task_t task)
。主机在他的并行任务部分执行完成时通知我们。
是否可以跟踪整个并行任务的执行?
简短回答:我不确定并行任务是否是您正在寻找的抽象。也许您想使用邮箱和常规任务构建自己的抽象。长答案如下。
这些并行任务不涉及邮箱:它们允许一个进程启动一组主机之间的所有通信,并在同一组主机上执行一些操作。
所选主机上的 运行ning 进程将不涉及:只有它们的主机。没有预先存在的方法来在多任务的进程之间进行同步。
一个解决方案可能是要求 运行 并行任务的进程在并行任务完成后将消息发送到正确的邮箱。这听起来很笨拙,但只有您知道您想要构建什么并且可以为您的模型想象出正确的抽象。
此信息来自 simgrid documentation 如何创建并行任务:
msg_task_t MSG_parallel_task_create (const char * name,
int host_nb,
const msg_host_t * host_list,
double * flops_amount,
double * bytes_amount,
void * data
)
创建此并行任务后应该使用哪个MSG_task_send
函数发送到多个邮箱?
在主机上执行我应该使用msg_error_t MSG_parallel_task_execute (msg_task_t task)
。主机在他的并行任务部分执行完成时通知我们。
是否可以跟踪整个并行任务的执行?
简短回答:我不确定并行任务是否是您正在寻找的抽象。也许您想使用邮箱和常规任务构建自己的抽象。长答案如下。
这些并行任务不涉及邮箱:它们允许一个进程启动一组主机之间的所有通信,并在同一组主机上执行一些操作。
所选主机上的 运行ning 进程将不涉及:只有它们的主机。没有预先存在的方法来在多任务的进程之间进行同步。
一个解决方案可能是要求 运行 并行任务的进程在并行任务完成后将消息发送到正确的邮箱。这听起来很笨拙,但只有您知道您想要构建什么并且可以为您的模型想象出正确的抽象。