MPI-Hydra Process Managerment Framework
官方文档地址:https://wiki.mpich.org/mpich/index.php/Hydra_Process_Management_Framework
1. 概述
Hydra frameworkd由以下几个基本部分组成:
- User Interface,用户接口UI,如mpiexec
- Resource Managerment Kernel,资源管理核心RMK
- Process manager,进程管理PM
- Bootstrap server,启动服务,如ssh,fork,pbs,slurm,sge
- Process Binding,进程监听,如plpa
- Commnication Subsystem,例如IB,MX
- Process Managerment proxy,进程管理代理
- I/O demux engine ,IO复用引擎
结构图下如下:

- User interface
此层的主要职责是从用户那里收集有关应用程序的信息: 在何处启动进程;将进程映射到内核,;读取 标准输入(stdin) 并将其转发到适当的进程 (es); 从不同的程序中读取标准输出/标准错误;合适的时候指挥。 - Resource Mangerment Kernel
RMK 提供了可与资源管理器进行交互的插件功能,比如Torque,Moab或者Cobalt。例如, 如果应用程序在启动作业之前需要在系统上分配节点, RMK 将完成这部分。同样, RMK 还可以允许在单个系统预留用于多个作业的情况下解耦作业启动。在当前的实现中, RMK 非常简单, 不提供任何这些功能。 - Process manager
进程管理器提供了必要的环境设置以及主要的进程管理功能,例如进程管理器pmiserv进程管理器提供了MPICH PMI(PMI)功能。但目前仅支持PMI1。其他进程管理器也可以通过其他接口支持。 - Process Managerment Proxy
进程管理代理基本上是一个帮助器代理, 它是在系统的每个节点上生成的, 以帮助进程管理器进行进程生成、进程清理、信号转发、I/O转发以及任何进程管理器特定的功能。
它基本上可以执行进程管理器可以做的任何任务, 因此, 甚至可以创建进程管理代理的层次结构, 其中每个代理都充当其子树的进程管理器。 - Bootstrap Server
引导服务器主要充当预配置的守护进程系统, 允许上一层服务在整个系统中启动进程。
例如, ssh 引导服务器fork进程, 每一个都通过执行一个 ssh 到另外一台机器,启动一个进程。 - Processing Binding
进程监听组件主要处理提取系统体系结构信息 (例如, 处理器的数量、可用的内核和 SMT 线程、它们的拓扑、共享缓存等), 以及将进程绑定到可移植的不同内核中用一种简便的方式。PLPA 是一个这样的体系结构, 已经在Hydra中使用, 但它只提供有限的信息。 - Communication Subsystem
通信子系统是不同代理之间以可伸缩方式进行通信的一种方式。这仅与下面描述的预启动和预连接代理有关。
此组件提供可伸缩的通信机制, 不管系统规模 (例如, 基于IB或MX)。 - I/O Demux Engine
这是一个方便的基础组件,不同的组件能够注册他们的文件描述符,demux engine能够等待这些描述符的事件。
这个方式给出了一个集中式的事件管理集制,因为我们不需要不同的线程阻塞不同的事件。
I/ODemux Engine使用了同步回调机制。也就是,对于每个文件描述符,进程调用提供了一个函数指针,指向在描述符发生事件时的必须调用的函数。
Demux Engins引起会在其所有已经注册的文件描述符上阻塞事件,并在发生事件时,调用适当的回调函数。
此组件在实现中非常有用,但在体系结构本身中没有发挥关键作用。
2. 执行过程和控制流
有三大类基本的可执行类在当前的模式中:UI,PMP,process
架构图如下:

- UI process
UI process,如mpiexec,获取用户参数,环境变量,节点信息和其他细节信息,然后传递它们给RMK。
MPI-Hydra Process Managerment Framework的更多相关文章
- [Android Pro] Android以root起一个process[shell脚本的方法]
reference to : http://***/Article/11768 有时候我们写的app要用uid=0的方式启动一个process,framework层和app层是做不到的,只有通过写脚 ...
- 【.Net Framework 体积大?】不安装.net framework 也能运行!?原理补充-3
继续补充点吧.接上一篇,我们实现了.net framework的精简的步骤. 有网友评论了,那个核心的 mscoree.dll 从.net framework 2.0开始,微软开始了新的CLR承载模型 ...
- Android以root起一个process[shell脚本的方法]
有时候我们写的app要用uid=0的方式启动一个process,framework层和app层是做不到的,只有通过写脚本,利用am来实现.下面是具体步骤: 1.创建一个包含Main()方法Java p ...
- Entity Framework Tutorial Basics(22):Disconnected Entities
Disconnected Entities: Before we see how to perform CRUD operation on disconnected entity graph, let ...
- 移动支付之智能IC卡与Android手机进行NFC通信
本文来自http://blog.csdn.net/hellogv/ .引用必须注明出处. 眼下常见的智能IC卡执行着JavaCard虚拟机.智能IC卡上能够执行由精简后的Java语言编写 ...
- Unity 接MM横屏闪退的原因
=.=研究了1天接SDK到处都在报错,于是使用logcat查看原因截取到这样的Exception. call to OpenGL ES API withno current context(logge ...
- 近年Recsys论文
2015年~2017年SIGIR,SIGKDD,ICML三大会议的Recsys论文: [转载请注明出处:https://www.cnblogs.com/shenxiaolin/p/8321722.ht ...
- [深入理解Android卷一全文-第四章]深入理解zygote
由于<深入理解Android 卷一>和<深入理解Android卷二>不再出版,而知识的传播不应该由于纸质媒介的问题而中断,所以我将在CSDN博客中全文转发这两本书的所有内容. ...
- Python 高性能并行计算之 mpi4py
MPI 和 MPI4PY 的搭建上一篇文章已经介绍,这里面介绍一些基本用法. mpi4py 的 helloworld from mpi4py import MPI print(&quo ...
随机推荐
- [20170625]12c Extended statistics.txt
[20170625]12c Extended statistics.txt --//别人的系统12c,awr报表出现大量调用执行如下sql语句.select default$ from col$ wh ...
- [VMWARE] [CENTOS7] 安装VMware-Tools
安装VM-Tools 先使用yum install 安装Perl与net-tools# sudo yum install net-tools# sudo yum install perl 加载CDRO ...
- python第二十九天-----继续学习第三模块——前几天旅行去了
subprocess模块 import subprocess subprocess.getstatusoutput('dir')#接收字符串格式命令,返回元组形式,第1个元素是执行状态,第2个是命令结 ...
- 用LinQ扩展方法,泛型扩展方法,实现自定义验证字符是否空、对象是否为null,及泛型约束使用,Action的使用
一.Linq扩展方法 1.扩展方法必须是静态方法.扩展方法所在的类必须是静态类 2.扩展方法里面的参数必须制定this关键字,紧跟需要扩展的类型,如下: 二.泛型约束 1.使用泛型的原因,是在不知道需 ...
- ffmpeg文件切片
先用ffmpeg把abc.mp4文件转换为abc.ts文件: ffmpeg -y -i abc.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb ...
- C#语言————拼接、插入、替换、删除四种方法
StringBuilder sb = new StringBuilder("hello"); sb.Append("world");//拼接 sb.Insert ...
- fedora 28 重新生成 /boot/grub2/grub.cfg
使用情景: 之前电脑安装了windows 7/ fedora 28 双系统,由于特殊原因,需要删除 windows 系统.在格式化硬盘后,我们还需要跟新 grub2 的启动条目:删除grub 启动的界 ...
- 用Python实现数据结构之树
树 树是由根结点和若干颗子树构成的.树是由一个集合以及在该集合上定义的一种关系构成的.集合中的元素称为树的结点,所定义的关系称为父子关系.父子关系在树的结点之间建立了一个层次结构.在这种层次结构中有一 ...
- 【PAT】B1056 组合数的和(15 分)
就看着代码量一直到没什么好说的了 #include<stdio.h> int main(){ int N,K;scanf("%d",&N); int sum=0 ...
- Beta冲刺(4/5)(麻瓜制造者)
今日已完成 邓弘立:完成了商品管理(下架)和搜索功能 符天愉:完成了后台管理员界面的登录和其他视图的载入 江郑:昨天来决定跨域执行请求,后台参考一些意见以后,操作起来没有那么容易实现,和队友交流以后本 ...