ubnt解决方案
楼主: plpka

[原创] 运用“云计算”高速PJwpa2

[复制链接]

928

回帖

5869

积分

408 小时

在线时间

中校

注册时间
2011-2-12
金币
4819 个
威望
14 个
荣誉
0 个
累计签到:181 天
连续签到:0 天
[LV.200]无线新星
发表于 2011-3-11 15:04 |显示全部楼层
要看大家的共享精神了
回复

使用道具 举报

99

回帖

267

积分

15 小时

在线时间

少尉

注册时间
2011-3-4
金币
163 个
威望
0 个
荣誉
0 个

尚未签到

发表于 2011-3-11 15:38 |显示全部楼层
本帖最后由 dark0082 于 2011-3-11 15:44 编辑 " v( N; @0 I- Q

. ^7 R9 Z- T+ v! P回复 5# aber02zzl : H* B7 C! N2 ]7 s# |0 m
; b' r: Y8 [$ |5 i2 _
5 G. H& h4 [7 E6 N7 N, j$ V! ~
    win2003有个版本就是集群运算的WCCS2003,在服务器上跑PJ程序,通过客户机配置后,客户机群闲时状态下的CPU将会被有效利用,用来分布式计算
回复

使用道具 举报

418

回帖

1863

积分

121 小时

在线时间

上尉

注册时间
2009-7-24
金币
1378 个
威望
0 个
荣誉
0 个
累计签到:6 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2011-3-11 16:18 |显示全部楼层
本帖最后由 plpka 于 2011-3-11 16:20 编辑 + S: y9 K  _6 ?( D
7 a5 ~  C7 j* E& p9 B0 s0 J6 z
使用云计算服务来替代在公司里设立维护大量服务器,显然对节省企业的成本有利。不过现在看来从云计算服务中受惠最大的恐怕是黑客等群体,黑客们开始利用亚马逊EC2等云计算服务来暴力PJ并窃取用户信用卡密码。不过据安全专家David Campbell的计算,即便用户不使用安全专家建议的大小写字母混合式的密码组合,使用亚马逊提供的云计算服务进行密码暴力PJ的黑客,出于成本过高的原因可能也将无法使用这种服务对具备12位长度的密码进行PJ。
1 z1 g2 n; |/ f3 \3 v- b目前,亚马逊公司为用户提供一种名为EC2的云计算网络服务,这种服务按小时计费.而如果要利用这种服务来暴力PJ长度为12位的密码,黑客需要为此支付150万美元以上金额的服务费。不过如果密码的长度缩短为11位,那么便只需要不到6万美元服务费即可,而10位密码则需要支付不到2300美元的费用。" 按照传统的安全建议,在密码中采用大小写字母混搭的形式更为安全一些,但根据最近的研究,其提升的安全等级并不如我们所想像得那么大,而密码的位数对密码安全性的提升作用则更大一些。采用这种混搭形式的10位密码只需要支付不到6万美元的服务费,便可以利用EC2云计算服务暴力PJ成功。而11位这样的密码则需要花费210万美元。而如果密码的长度较短,即使用户在设置密码时采用诸如“!@#$%”这类生僻字符,暴力PJ密码同样比较容易。采用EC2计算8位长度的这种密码的费用大约是10.6万美元左右。) P# d4 L! B: V' l
这篇分析文章的全文可以点击这个链接进行查阅。这篇文章以今年早些时候SensePost的安全顾问Haroon Meer在“黑帽”大会上所作的研究报告为基础。在这篇文章中,Campbell向我们介绍了一种利用亚马逊EC2云计算服务来暴力PJ并窃取用户信用卡密码的方法。  e7 b8 \1 {7 V- K
“由于黑帽组织已经开始利用云计算等超级计算服务开展PJ行动,因此我们这批负责安全管理的技术人员需要重新考虑一些过去被我们忽视的安全细节。黑客们窃取了用户的信用卡后,可以利用这些卡里的钱来购买计算能力强劲的机器,这些机器的威力甚至比国家安全机关中装备的超级计算机还强。”尽管亚马逊向单独一名用户提供的云计算服务计算能力有限,但黑客们也有对应的办法,他们可以利用窃取的多个信用卡账号同时登陆云计算服务,让这些计算同时进行。8 F2 {! z! @4 `) e! b
Cambell在这次的假设中采用了一种很简单的算法:
5 K: e0 w' ?& T6 s; B; c  H在计算暴力PJ由8位全小写字母组成的密码的费用时,他简单地将暴力PJ的次数设为26的8次方,这样,加上大写字母以及10个阿拉伯数字后,暴力PJ的次数则变为(26+26+10)的8次方。而他的密码PJ软件则每个小时可以暴力计算出93.6亿个密码,将62的8次方除以93.6亿,然后再乘以EC2服务的服务费,每小时30美分,这样暴力PJ8位全小写字母密码的费用计算式便为:((26+26+10)^8/ 9,360,000,000) * .30.
' z2 r( h4 q% d( f4 x, ^: i而暴力PJ由12位大小写字母+阿拉伯数字组成密码所需的费用则为((26+26+10)^12 / 9,360,000,000) * .30/ o$ ~* f# u8 i2 V
使用云计算服务来替代在公司里设立维护大量服务器,显然对节省企业的成本有利。不过现在看来从云计算服务中受惠最大的恐怕是黑客等群体。不久以前,安全专家还对102位的RSA密码长度刚到放心。但随着电脑技术的发展,现在愿意使用2048位密码长度的安全专家数量也越来越多。而现在云计算也开始加入到为密码PJ技术提供服务的阵营中去,是时候对一些传统的安全措施进行重新考虑和修改了。
回复

使用道具 举报

239

回帖

533

积分

296 小时

在线时间

中尉

注册时间
2009-10-7
金币
255 个
威望
0 个
荣誉
0 个

尚未签到

发表于 2011-3-11 16:21 |显示全部楼层
真明白。。。。。。。。。。。
回复

使用道具 举报

418

回帖

1863

积分

121 小时

在线时间

上尉

注册时间
2009-7-24
金币
1378 个
威望
0 个
荣誉
0 个
累计签到:6 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2011-3-11 16:21 |显示全部楼层
云计算技术用来PJ无线网络密码. r. ~  i2 v$ s1 t5 r

9 @/ O- |  ?* v4 K+ p. s' g$ d一名安全人员公布了一个低成本的PJ无线网络的服务,用云计算来验证无线网络的密码安全,使用的密码字典约1.35亿个单词。; B0 v' J' _8 V/ k! W; f5 H

/ r+ Q9 r9 e7 }3 \" m此服务称WPA Cracker(WPAPJ),是一个云计算相关的服务,基于约400个CPU集群。付出34美元,你就可以在20分钟内尝试1.35亿种不同的密码,而如果你对时间要求的不那么严格,那你还可以用40分钟来运行这个服务,当然费用减半到17美元。
8 G% K  F# z, P' ~# B, N
( o, e8 N: t8 K" }. X+ o$ @除了云计算这个噱头,这项服务专门用来PJWi-Fi网络密码很值得人们注意。虽然WPA至少要求8位密码,但1.35亿的字典库可以很容易的PJ任何以WPA加密的Wi-Fi网络,建议Wi-Fi用户更改更强的加密方式。
回复

使用道具 举报

418

回帖

1863

积分

121 小时

在线时间

上尉

注册时间
2009-7-24
金币
1378 个
威望
0 个
荣誉
0 个
累计签到:6 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2011-3-11 16:23 |显示全部楼层
云计算的特点之一就是,为存储和管理数据提供了几乎无限多的空间,也为我们完成各类应用提供了几乎无限强大的计算能力。然而,云计算的这种无限扩展和超强的计算能力,一旦被不法分子用于暴力PJ密码,将造成无法弥补的后果。
# i: t4 b' o6 t# q, I5 _8 w" K. Z2 N* n& _2 W$ d
  在密码学中,没有绝对安全的密码,也就是没有不能破译的密码,只是破译时间的长短问题。一般而言,一种先进的密码被设计出来后,要PJ需要10年左右的时间,而设计一种新的密码大约需要8年的时间。密码学就是在这种不断的创立和PJ中发展的。  W, [/ c4 E: n4 q" p0 Y

4 |6 @: y! u9 d- t% V5 U( ~  密码之所以不能在短时间内PJ主要有两个方面的原因:8 k3 G0 ?3 f  F* W1 k' T- j. f

: d4 R8 A+ l) M  一方面,计算能力不够强。MD5密码算法,运算量达到2的80次方。即使采用现在最快的巨型计算机,也要运算100万年以上才能PJ。6 O. q. b; N% G+ u1 T# t1 d1 H0 h
' P2 H# S2 U- G% u( ^" M
  另一方面,快速PJ的代价太大。想要短时间破译代码,就需要大量的高性能计算机协同工作。而购买这些高性能计算机的代价往往比破译密码所获得的大很多。) o" _, J6 X6 C* m
* O# Z/ v! e8 z. V1 k* `4 p
  然而,云计算的出现刚好解决了这两大难题。首先,云计算具有超强的可无限扩展的计算能力,这就解决了计算能力不够的问题;其次,云计算是按需付费,无需花很多钱去购买超强性能的计算机。
6 A, d( d% `( d0 j" Y; M9 j- n/ X! t- Q! T: [6 A
  由此可见,云计算真的是一把“双刃剑”,它在为信息产业带来机遇的同时,也伴随着带来了极大的安全隐患,到底该如何把握好这把“双刃剑”,让它为人类造福呢?现在还是一个很棘手的问题。
回复

使用道具 举报

418

回帖

1863

积分

121 小时

在线时间

上尉

注册时间
2009-7-24
金币
1378 个
威望
0 个
荣誉
0 个
累计签到:6 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2011-3-11 16:28 |显示全部楼层
本帖最后由 plpka 于 2011-3-11 16:33 编辑 ' s6 O. K+ `6 D4 O9 [6 s
. G( p4 |" ~3 K
什么是Microsoft Windows Compute Cluster Server 2003?9 d, Q* P, p3 i6 ?
Microsoft 在多年之前就开始支持容错和高可用性群集,而随着 Windows Compute Cluster Server 2003 的发布,Microsoft 将高性能计算 (HPC) 的超级计算能力引入了个人和工作组领域。
8 I' c& n# F. x# Y背景
) R" [# A6 F% w1991 年,10-Gflops 级超级计算机是一种售价近 4 千万美元的 Cray 计算机。如今,将四台 x64 计算机组合在一起就能达到相同的计算能力,而成本大约只需 4 千美元,从而将超级计算的硬件采购成本降低到了个人台式机的水平。 / a- P& D# E1 R8 Q' q9 }/ B
但是,实现个人超级计算机的难题一直是部署和管理的复杂性。Windows Compute Cluster Server 2003 将群集部署和管理集成到熟悉的 Microsoft Active Directory® 目录服务和 Microsoft Windows Server 2003™ 工具中,实现了简易的计算节点部署和使用 Microsoft 管理控制台 (MMC) 的中央管理。 0 V5 h6 f! E/ w( x0 [0 ]4 n: O
该产品包含哪些组件?
% _: b: e9 C$ e7 A8 c1 y/ d8 dWindows Compute Cluster Server 2003 包含两张 CD:第一张 CD 包含 Windows Server 2003 Compute Cluster Edition,第二张CD是Microsoft Compute Cluster Pack — 构成 Windows Compute Cluster Server 2003的界面、实用工具和管理基础架构的组合。
, Y# _6 X* e" X硬件要求- p: A/ a* j4 G9 u7 |: P8 g7 x
最低系统硬件要求(参见表 1)与 Windows Server 2003, Standard x64 Edition 的硬件要求类似。Windows Compute Cluster Server 2003 最多可支持 32 GB 的 RAM。 # I) o. ]* t9 [0 z' b
支持的处理器包括:
" Z8 D5 s, p. L- KAMD Opteron 1 M: M' u8 \* W% @! {9 M
AMD Athlon 64 7 h; k! ]6 H! C( S2 _" z3 L
带有 Intel EM64T 的 Intel Xeon
6 Y* }7 r  r0 ^$ [6 d. R9 g带有Intel EM64T 的 Intel Pentium # ~7 q7 d2 Q" ^1 }

! w2 a' z' h; G( ?. e# M1 X) {- T

9 @3 F- r! A  b6 D* w6 [; H表 1. 最低硬件要求( u4 ~4 ^0 w  K- \3 x" p
硬件 要求
6 o# r' j  L; K  {/ }! M! {CPU x64 体系结构的计算机,具有 Intel 64 位内存扩展技术 (EM64T) 体系结构的 Intel Pentium 或 Xeon 系列处理器;AMD Opteron 系列处理器;AMD Athlon 系列处理器;兼容处理器 3 E. \+ @# J. ]! P3 G% I$ _8 F1 m
RAM 512 MB + ]6 e- B$ K4 H" E4 [8 t
多处理器支持 Windows Compute Cluster Server 2003 和 Windows Server 2003 Standard x64 Edition 最多每个服务器支持四个处理器。Windows Server 2003 Enterprise x64 Edition 最多每个服务器支持八个处理器。
. q, ~; X% g9 n1 w安装所需磁盘空间 4 GB
2 x" F! [1 I3 `磁盘卷数 如果使用远程安装服务 (RIS),则根节点上需要两个卷(C: 和 D:) — 一个卷用于系统分区,另一个卷由 RIS 使用。如果根节点还用于其他角色,如文件服务器或打印服务器,则建议使用更多分区。* `- ^. g* \* F: e
计算节点需要单个系统卷。$ D' a* V( q, Q4 i
独立磁盘冗余阵列 (RAID) 受支持,但不是必需的。
2 s5 T! m% K7 T网络接口卡 至少需要一个网络接口卡 (NIC)。若使用了专用网络,则根节点至少需要两个 NIC,而计算节点则至少需要一个 NIC。每个节点可能还需要一个高速 NIC,用于 Message Passing Interface (MPI) 网络。 # F' R9 l6 r+ ]5 g; N  u
' R' z; p8 g# R( B2 o. c5 B5 [
软件要求  \; i( W" r3 a# l" A5 F% b& I& L
Windows Compute Cluster Server 2003 的根节点和计算节点可以使用下列任何操作系统:
8 G3 {2 |6 F3 z* `& O·         Windows Server 2003 Compute Cluster Edition4 L& }0 E; o( `1 F
·         Windows Server 2003 Standard x64 Edition
- x" L6 d! S5 C2 m3 I2 ^·         Windows Server 2003 Enterprise x64 Edition
" f7 J: C  I% P+ l1 G; M' L$ T·         Windows Server 2003 R2 的 x64 版本' O+ Y' T8 }- ~# _# D! r
远程管理和作业调度组件自动安装在计算群集的根节点上,但为了简化管理和调度,也可以将这些组件安装在远程工作站上。支持安装远程组件的操作系统有:
- L, x7 J( B* r) n5 J·         Windows Server 2003 Service Pack 1 (SP1) 或 R2
7 i* C! p6 T( |- W8 a·         Microsoft Windows® XP Professional Service Pack 2 (SP2)
  L9 V4 t/ c: W" y" g% \! `·         Windows XP Professional x64 Edition) a. q9 n. P; j9 J
注意: Windows Server 2003 Compute Cluster Edition 纯粹是为高性能计算应用程序而设计的,不支持用作通用基础结构服务器。6 K* |6 z( f1 [! A  X

& m& e- e5 C. @" n解决方案体系结构: s/ `( K, F9 l; F" D
Windows Compute Cluster Server 2003 是服务器的群集,包含单个根节点和一个或多个计算节点(参见图 1)。根节点控制和协调所有对群集资源的访问,是计算群集的单一管理、部署和作业调度点。Windows Compute Cluster Server 2003 使用 Microsoft Operations Manager 2005 和 Microsoft Systems Management Server 2003 等工具,将现有的公司 Active Directory 基础结构用于安全、帐户管理和总体操作管理。6 {& _9 \6 p4 n; U. d1 u4 P) O

/ Z0 ]4 d- k0 j# ^鼠标滚轮缩放 style="DISPLAY: block; CURSOR: hand" alt="" src="http://www.xasun.com/attachment/071011/5030522d0b.jpg" width=450 vspace=5 resized="1">
4 O4 s8 f  H! L' A7 C  V8 ?% K( k  s3 c/ S" V" P: q
图 1. 典型的 Windows Compute Cluster Server 2003 网络/ k# C  {- U3 ?4 z; M
Windows Compute Cluster Server 2003 的安装包括在根节点上安装操作系统,将根节点加入现有的 Active Directory 域,然后安装 Compute Cluster Pack。若要使用 RIS 自动部署计算节点,则要在安装完毕后安装 RIS,并将其配置为“任务列表”的一部分。 - H0 A3 I- b4 i# a6 o* w1 `8 n
当 Compute Cluster Pack 安装完成后,将会弹出一个“任务列表”页面,其中显示完成计算群集配置所需执行的步骤。这些步骤中包括定义网络拓扑,使用“配置 RIS”向导配置 RIS,将计算节点添加到群集,以及配置群集用户和管理员。
9 F, l& F0 v' I4 E4 Q( Z# t6 L: C4 T网络拓扑( l7 `" d0 M+ h5 y- _
Windows Compute Cluster Server 2003 支持五种不同的网络拓扑,其中每个节点各有一至三个网络接口卡 (NIC)。所支持的五种拓扑分别是:
2 [' I: l$ @* V2 N' o+ h·         每个节点上三个 NIC。一个 NIC 连接到公共(公司)网络;一个连接到专用的专门群集管理网络;而另一个则连接到专用高速 Message Passing Interface (MPI) 网络。1 t1 z" W0 b( D# J! j
·         根节点上三个 NIC,每个群集节点上各有两个 NIC。根节点提供计算节点和公共网络之间的网络地址转换 (NAT),其中每个计算节点都有一个到专用网络的连接和一个到高速协议(如 MPI)的连接。
: x/ r* \1 c1 o4 ?3 n·         每个节点上两个 NIC。一个 NIC 连接到公共(公司)网络,而另一个则接连到专用的专门群集网络。 % _  P$ ?7 r7 B( V$ Z3 ~
·         根节点上两个 NIC,每个计算节点上各有一个 NIC。根节点提供计算节点和公共网络之间的 NAT。
$ o5 O/ Y, D  [" I; D! e·         每个节点上各有一个 NIC,所有网络流量共享公共网络。在这个受限的网络方案中,计算节点的 RIS 部署不受支持,并且必须手动安装和激活每个计算节点。 6 T' f1 T& z. F
Microsoft Message Passing Interface (MS-MPI) 是一种高速网络接口,可在千兆位以太网、InfiniBand 或任何提供支持 WinSock Direct 的驱动程序的网络上运行。MSMPI 基于 MPI2 的 Argonne 国家实验室 MPICH2 实现,并与之兼容。
( y4 `% b. E/ U点击进入官方试用版下载页面9 C6 [( t( U" u3 Z
http://www.microsoft.com/china/windowsserver2003/ccs/default.mspx
回复

使用道具 举报

418

回帖

1863

积分

121 小时

在线时间

上尉

注册时间
2009-7-24
金币
1378 个
威望
0 个
荣誉
0 个
累计签到:6 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2011-3-11 16:41 |显示全部楼层
微软公司今天发布了Microsoft Windows HPC Server 2008的第一个公开Beta版本.
' t& j0 u. S+ T5 \4 D这一怪异名称的操作系统主要面向快速增长的高性能计算(HPC)市场,标志着微软深入并行计算市场,一个跨核心和平台与节点的通用开发工具正在被创建起来.& O9 G  L( e+ v! i+ k3 `

! B! p. L; ~/ }- G( D, p
) Q, N; Y* a* L* G* t% e4 YWindows HPC Server 2008,是Windows Compute Cluster Server 2003的发展和延伸,它基于Windows Server 2008操作系统,能提供增强的生产力,可伸缩性和可管理性.8 I! C2 V/ H3 R+ S
( w* X: s' `# a% q) Q1 ?
此次更名也意味着Windows将担负起更多HPC的计算负荷,面向高速网络,高效率和可伸缩节点管理,服务导向结构的工作.目前Beta版本已经可以从微软网站获取到.
, D- G. e  x! E' J8 M* X$ T  F7 {0 L1 E
Windows HPC Server 2008Microsoft® Windows® HPC Server 2008(HPCS),下一代高性能计算(HPC),为具有高度生产力的HPC环境提供了企业级的工具、性能和扩展性.HPCS提供了完整而集成的集群环境,包括操作系统、作业调度、消息传递接口v2(Message Passing Inte***ce v2,MPI2)支持、集群管理和监控组件.以Windows Server® 2008 64位技术为基础,HPCS能够有效扩展到数千个处理内核,并提供管理控制台,用于主动监控和维护系统健康与稳定.4 u/ T2 q6 }7 p& Q. \2 q

+ x; m9 F5 J& i+ I: s  D. J2 r
( P4 U4 @" y1 y! y9 Z  e1 Y从以下地址下载Windows Server 2008 HPC Edition DVD镜像和Microsoft HPC Pack 2008 CD镜像。将Windows Server 2008镜像刻录到DVD,HPC Pack 2008镜像刻录到CD。使用DVD安装Windows Server 2008,在安装完成后插入HPC Pack 2008 CD,运行“setup.exe”启动HPC Pack安装向导。
& V0 Q: y. ^* N2 {4 f" r
/ [% u# [* Z/ \) J& X* f$ LWindows HPC Server 2008中文版的下载,有兴趣的可以下载!KEY可以用server 08 web的KEY
/ O/ H3 z5 ~8 E! T% O
& d9 A' T! Z2 i% Q" C, v% g当询问产品序列号时请输入:YQGMW-MPWTJ-34KDK-48M3W-X4Q6V
6 e4 _; j2 S) [" ghttp://www.cc580.com/soft/download.asp?softid=1659&downid=8&id=1738
回复

使用道具 举报

418

回帖

1863

积分

121 小时

在线时间

上尉

注册时间
2009-7-24
金币
1378 个
威望
0 个
荣誉
0 个
累计签到:6 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2011-3-11 16:53 |显示全部楼层
惠普Windows 高性能集群方案
6 z' [" K  p0 |3 W高性能计算集群(HPCC-High Performance Computing Cluster) 是计算机科学的一个分支,以解决复杂的科学计算或数值计算问题为目的,是由多台节点机(服务器)构成的一种松散耦合的计算节点集合。
/ e9 z9 [" K3 r' m& Q3 J. u3 c前言2 K( Q, m: n2 w
随着计算机科学技术与国民经济的快速发展,高性能计算已经逐渐成为科学研究所必需的辅助工具,在各个基础学科领域发挥出巨大的作用。如在气象气候、地震预报、石油物探、航空航天、工程计算、密码研究、新药设计、生物基因、船舶工程、地质勘探、海洋工程、城市建设、武器研究、材料工程、环境科学等领域,研究工作的计算任务往往公式复杂、计算难度大、计算时间极长,用一般计算方式难于完成,因此高性能计算系统就成为必不可少的工具。
% y2 G  m: O& x' S高性能计算集群(HPCC-High Performance Computing Cluster) 是计算机科学的一个分支,以解决复杂的科学计算或数值计算问题为目的,是由多台节点机(服务器)构成的一种松散耦合的计算节点集合。为用户提供高性能计算、网络请求响应或专业的应用程序(包括并行计算、数据库、Web) 等服务。
. Q  I2 i6 z: Z. H' r1 Q" H  `+ ?& z相比起传统的小型机,集群系统有极强的伸缩性,可通过在集群中增加或删减节点的方式,在不影响原有应用与计算任务的情况下,随时增加和降低系统的处理能力。还可以通过人为分配的方式,将一个大型集群系统分割为多个小型集群分给多个用户使用,运行不同的业务与应用。2 Z3 X* c; q; c/ B' y  g
集群系统中的多台节点服务器系统通过相应的硬件及高速网络互连,由软件控制着,将复杂的问题分解开来,分配到各个计算节点上去,每个集群节点独立运行自己的进程,这些进程之间可以彼此通信(通常是利用MPI -消息传递接口),共同读取统一的数据资源,协同完成整个计算任务,以多台计算节点共同运算的模式来换取较小的计算时间。
7 N6 R6 H  z4 H根据不同的计算模式与规模,构成集群系统的节点数可以从几个到上千个。对于以国家政府、军方及大型组织机构来讲,节点数目可以达到数千甚至上万。而随着HPCC 应用的普及,中小规模的高性能计算集群也慢慢走进中小型用户的视野,高性能计算集群系统的部署,极大地满足了此类用户对复杂运算的能力的需求,大大拓展了其业务范围,为中小型用户的成长提供支持。
- S' J2 A3 O+ h) B+ L. c本次方案研究适合于中小规模用户的典型系统:基于32 个计算节点和InfiniBand 高速网络的Windows 集群。. o+ u1 V5 S  z" a/ Y
$ n& F) I1 c( I% Z/ A/ b
方案描述5 A8 S4 x& b9 K+ r: P
此次方案中,高性能计算集群系统的节点由HP BladeSystem 刀片服务器搭建,节点间通过InfiniBand 高速网络相连,管理、登录和存储节点由HP ProLiant 机架式服务器构成,存储节点通过SAN 交换机外挂HP StorageWorks 磁盘阵列来存储大容量数据。' `- }/ D  N$ }' f
系统采用HP 公司的32 台BL460c 刀片服务器作为计算节点,放置在2套C7000 刀片机箱,用作并行计算的计算节点。每台刀片服务器配置2颗四核处理器,8GB 内存和2块146GB 热拔插SAS 硬盘。每刀片机箱中,16 台刀片服务器分两层放置,上层8台,下层8 台(见产品描述刀片服务器部分详情)。计算节点集中在刀片机箱中,易于用户进行管理,网络设备模块化,电源集中供电,自动负载均衡,是当前业界最佳高性能集群平台方案。
. r2 {& E! c! u4 `系统拓朴图:5 J8 d. n$ M( m+ S/ X# V: G. y' ~
1 }" U% y1 Q) t2 T

: Q: _8 k7 Z* J9 ~4 m系统节点功能描述:
3 R0 {" ]/ Z, V$ S. N• 计算节点用于科学计算,运行并行计算程序,是高性能集群计算系统的主体。占有最大的采购成本,也是系统耗电的主体; y$ ^2 f- p$ b* r+ m5 H, m
• 管理节点安装有集群管理软件,做为主节点对整个集群进行监控、管理和作业调度等工作,还负责在集群安装的初期对所有的节点服务器进行操作系统及应用软件的大规模快速部署功能,为多台服务器一次安装OS 和软件提供极大的便利0 v7 R% n% J7 s2 Z' ?1 e4 ?
• 登录节点用来承接用户接入集群系统,运行并行计算的主程序体,对程序进行编译和调试,划分任务与数据,按照一定的规则分配到计算节点,最后对计算任务的回收与整理- ~: j- S% ~+ D2 O
• 存储节点用来连接后台的大容量数据存储设备,将存储空间共共享给所有的节点服务器,整个集群通过此存储节点来进行数据的统一大规模存取与调用" G& D+ a) a) k3 f& s) |& n; Q$ ?
% y6 Z; n/ }# o' t% O7 x
系统网络类型描述:
0 j* J* J6 a' }# d" D7 v7 r• InfiniBand 高速计算网络: q3 D( ~, [# Y2 e4 `7 J
由于并行集群计算系统对网络间的数据交换要求极高,因此在此集群系统中配置了高带宽低延迟的InfiniBand 网络用来提高并行计算中的消息传递。此套系统中,刀片机箱中都配置了InfiniBand 交换机,通过两个刀片机箱中的交换机相连的方式将所有计
5 g- S4 B4 U/ j2 U. z# C: C2 Z1 q算节点连接成高带宽、低延迟的计算网络,用来运行并行计算中的进程间消息传递。# z' Q) r0 G7 n! @
• 千兆管理网络
" e/ ], S% x$ s$ ?' h4 m8 s除了高速低延迟的InfiniBand 网络,此集群系统中还配置了兼容性极高的千兆以太网络,用来运行基于TCP/IP 协议的数据传输,做为集群管理网络,用来; B( G6 h- A; O! p3 I& R5 i
进行节点操作系统系统的布署,软件的安装,还可以做为另一套计算网络来运行。% F" G- w, y. c. P6 N' I3 u9 t8 M. e- t
• 监控网络
# u6 p/ `6 O! @( |" _在每个HP 刀片机箱上和HP 机架式服务器上,都配置有HP 统一技术的iLO 远程监控模块。系统再配置一套以太网交换机,用来与iLO 百兆端口监控整个集群的运行状态和对集群进行远程开关机等操作。  |6 J8 p+ O% K' l$ ?8 R4 [5 J% p
以上描述的网络都是在刀片机箱中实现,包括各种交换机都是以模块化形式插在刀片机箱后面的插槽里。系统网络结构的正面视图及背部连接图如下:# L, Y6 o  g5 {2 S& O" |
' ~7 G# W0 |3 D  M- |. g8 b! W* y9 S( }
  U+ X+ T. P' z
系统构成" q9 I5 u- x! u9 u
惠普高性能计算集群系统硬件部分:
, j7 w7 e$ P0 K; N0 q• 计算节点:32 台HP BL460c 刀片服务器(放置在2套HP C7000 刀片机箱中) * E. K+ Q8 I+ r6 c' _6 h' o
• 管理节点:1台HP ProLiant DL380G5 机架式服务器
% b) @' o; A$ h( r• 登录节点:1台HP ProLiant DL380G5 机架式服务器
% {5 @: O8 k5 b- Z5 q• 存储节点:2台HP ProLiant DL380G5 机架式服务器
; _. K& D" M: U+ ^3 q, h• 存储设备:1台HP MSA2000fc 磁盘阵列柜' a' W% R4 T$ L$ `- J! U) G% @
• 计算网络:InfiniBand(20Gb/s) 高速计算网络6 G2 u  J. z2 E% _2 K
• 管理网络:千兆以太网3 p! k2 t$ L1 o9 Y- i
• 监控网络:百兆以太网
4 \" X0 s5 d' S) Z5 \/ N7 V* b' {• 控制系统:HP 机架式17”TFT 液晶显示器/键盘/鼠标及8端口切换器系统" q  F. r: [6 q" C$ Q- h
• 基础设施:HP 机柜、供电模块、系统布线、线缆插座和相关附件
( B" G( B1 S7 s" E5 G7 ]! k. v9 n; M- ~
惠普高性能计算集群系统软件部分:% a' c1 I6 }8 E* }' f
• 操作系统:Microsoft Windows Compute Cluster Server 2003 3 T0 E& t% w/ k1 ?  a1 u4 Q
• 集群管理:WCCS Remote Installation Services & l  B6 R6 I: v$ Y
• 作业调度:WCCS Computer Cluster Job Manager
; U* G1 m* ?( I# F+ Q• 编译环境:WCCS Visual Studio 整合开发平台
8 h' F7 X8 h4 H/ O; M• 数学函数库:WCCS Visual Studio 整合开发平台  _0 I3 x8 P4 @
• 并行环境:WCCS MPI
  ^3 Z, a4 f9 e6 h7 I; ?/ m
4 N) C; S9 n3 n  R集群系统的管理
- L8 W2 G! r3 a4 M( aWCCS 集群管理软件:
. h, K$ q6 V! a0 AWCCS 2003 提供了一项名为Remote InstallationServices (简称RIS )的工具,其就如同安装精灵一般,旨在简化计算节点的安装作业。具体而言,WCCS 2003 用户于完成主节点的安装程序后,便可透过RIS 工具的协助,从而以最快的效率,自动于远程完成其它节点的部署、安装等程序。另外,虽有RIS 工具可供自动部署,然用户仍可选择以手动方式完成部署工作,或是采用非微软的部署工具。
% L* T6 H+ k1 c4 |5 s& l+ m& C此外,WCCS 2003 内含Microsoft Management Console(MMC )管理控制,透过此一GUI 主控台,管理者便可快速且轻易地设定MPI 、网络(含Private Network 与Public Network ),同时可进一步利用节点管理机制,随时监控各个远程运算节点的主机健康状态,掌握诸如CPU 、内存、硬盘、供电系统或散热风扇等组件之实时信息。% v2 Z% B* h; K8 D
值得一提的,MMC 经由与Active Directory 之整合,便能让WCCS 2003 融合客户端权限控管、账号管理等既有IT 基础架构,从而精准定义管理者及使用者的权限,进行以角色为基础的安全性丛集管理,致使所有的程序,都能够在提交使用者的环境与凭证下运行。% O) G" T- M5 k
支持Visual Studio 开发环境 降低HPC 程序编译与调试之复杂度
3 @, i- N2 [0 [+ V8 ^& JWCCS 2003 的一大特色,便是让开发人员能够以其所娴熟的基于Windows 技巧与经验,运用业界普及率颇高的Visual Studio 整合开发平台(Integrated Development Platform;IDE ),展现前所未见的程序开发效率。2 x) a+ e& L& V
据悉,Visual Studio 2005 业已支持HPC 应用程序开发中,所亟需之并行编译和调试能力;而综观当前HPC应用的主流操作平台-Linux ,则并未整合类似的开发环境,故用户必须参透诸如FORTRAN 、C或C++ 等不同函数库,且需因应Linux 操作系统版本之歧异,蓄积不同的维护或管理技巧,相形之下,WCCS 2003 可谓比Linux 更有优势。. |* [6 M# ?( H% q8 L/ z
集成消息传递接口MPI  同时内建作业调度器
) m  V1 h: q* L6 X5 _较诸Linux 操作系统,WCCS 2003 最显著的竞争优势,便在于内建了MPI 信息传递接口、作业调度器;至于Linux 用户,还需透过第三方供货商所提供之MPI 或编程工具,在可用度方面,难免存有若干风险。
' L" {; P# }8 ~/ @( m微软所提供的MPI ,系依循MPI2 、WinSock Direct 等业界标准协议,旨在为不同的计算节点之间,在兼顾性能及CPU 资源利用率的前提下,建立彼此沟通、传送、同步更新信息之管道,对于大多数分布式运算程序的执行,皆属至为关键。WCCS 2003 除支持以太网络连结外,也可藉由制造商所提供的WinSock Direct 驱动程序,继而支持InfiniBand 或Myrient 高速网络,辅以内建Remote Direct Menory Access 功能,达到降低延迟的效果。
3 t+ G) ]0 K  y& s8 U2 b9 W另外,WCCS 2003 本身也内建了一个命令列作业调度器与集群计算作业管理器(Compute Cluster Job Manager ),允许使用者得以传统命令行(Command Line) 方式进行操作;此一作业调度器,提供了1个Win32 使用者接口,据以建立、提交与监控集群节点的任务。据了解,此一命令列接口(Command-Line Interface;CLI )的支持范围,横跨Perl 、FORTRAN 、C/C++ 、C# 与Java ,论及作业调度器的功能,亦含故障监测、自动清除与安全防护等任务。
0 Z, v" K$ @& l$ S+ L' R3 W) Y% R' |, P3 s* R
HP 与高性能计算; L! c+ {2 G5 K* b
惠普公司作为高性能科学计算集群技术的领导者,可提供最强大的、易于管理的一系列现有的Windows 集群解决方案。惠普结合了Windows 的优势、业界最佳应用软件、高速内部互连、工业标准的计算机平台、惠普集群技术专家、出色的支持和服务,以经济的成本向用户提供具有增加容量和能力的高性能计算集群系统。
4 R% B4 E+ T+ q. \. [1 a3 u  Q惠普公司可向用户提供基于Windows 集群系统解决方案。该系统可由惠普公司集群技术部门进行设计和配置,由惠普专业集群系统工程师进行安装、集成和调试。致力于为用户提供基于相对低成本的PC Server(刀片服务器)的高性能计算系统,并让用户充分利用Windows 这种为人所熟悉的操作系统,组建起一套成本经济的、性能强大的、标准开放的集群计算系统,提高计算能力,加快问题求解速度,以解决困扰用户的棘手的计算难题。
& V7 ^$ A" ~- s3 L/ }! t6 s4 K做为全球No.1 的IT 公司,惠普以推动高性能计算在中国的发展和应用为己任,为中国的高性能计算用户提供全面的服务,全力扶植用户的应用,帮助用户提供全面、个性化的培训,帮助用户把高性能计算系统用好,发挥出真正的作用和效益,真正解决实际问题,促进用户单位的信息化建设,确立在其行业内信息技术方面的高精尖地位。
) [1 m* Z2 K9 n* Q! L6 P. p7 f2 k# E# G3 q% `
成功案例9 h0 v. ~; i2 n7 }
中国地震局地质研究所成功案例分享  g1 m5 {& v, k  U9 m# O
• 用户概况中国地震局地质研究所是一个包括地质、地球物理和地球化学的综合性、多学科的社会公益型基础科学研究机构。从事的研究学科包括地球学问结构研究,岩石圈深化研究,油气资源、工程地质与水资源研究等课题。
" g& Y: X% M. w以上业务和需求分配给所里的各个研究室, 由于每个课题的研究工作都离不开理论计算,地质研究所需要上马一套高性能计算系统来满足所里各科室对计算资源的需求。
- ]+ b8 h* ^! N( d8 p# H' J• 基本需求中国属于地震多发区,全国各地的地震数据急速增长给台网中心的工作带来巨大的压力;传统的计算机无法高效、便捷的完成其业务操作,中国地震局地质研究所在向HP 公司咨询了目前地地质资源分析与处理方面的软件之后,认为并行计算模式比较合适其业务的发展。通过将大的计算任务分割为多块交于多个计算节点处理,并行计算能够用高性价比的X86 服务器完成传统小型机的计算任务。
2 U9 O+ B5 i4 q& D( }  O. ]  ^; d• 业务状况根据上述现状,HP 公司认为,地震局地质研究所需要上马一套高性能计算集群系统,考虑到各科室的研究员们都习惯于Windows 界面,以及目前的程序开发平台为VC ,而且研究员们大多没有使用过Linux 平台,建议所有节点使用传统的Windows 平台,考虑到这是一套集群系统,HP 向用户推荐了目前主流的Windows 集群平台:Microsoft Windows Compute Cluster Server 2003 ,这件软件中还配置了消息传递接口函数库(MPI) 和全套的Windows 界面软件开发环境,使得地质所的用户能够直接使用之前开发的程序及继续探索适合自己的并行程序。. a9 f6 c0 q% A) L5 n
• 解决方案
% ]3 p2 M3 ~7 l/ w8 e: wa) 提供32 台HP BL460c 刀片服务器做为计算节点
1 @# t/ d3 h& ob) 节点间采用InfiniBand 高速计算网络
+ H) G- ]: K) `% q4 k$ |3 sb) 提供一套HP MSA2000fc 作为共享存储设备4 z5 i5 t3 N# _- l: H( g0 V- f! w- M
c) 采用Windows CCS 集群管理和相关并行计算环境
回复

使用道具 举报

418

回帖

1863

积分

121 小时

在线时间

上尉

注册时间
2009-7-24
金币
1378 个
威望
0 个
荣誉
0 个
累计签到:6 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2011-3-11 16:57 |显示全部楼层
HPC中国研发团队
6 X8 i) {1 b$ i, v; `; e; _http://blogs.technet.com/b/chinahpc/
回复

使用道具 举报

418

回帖

1863

积分

121 小时

在线时间

上尉

注册时间
2009-7-24
金币
1378 个
威望
0 个
荣誉
0 个
累计签到:6 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2011-3-11 17:01 |显示全部楼层
HPC中国研发团队
5 r/ ^& {/ m& a; C7 `/ b) w* |微软中国研发集团服务器与开发工具事业部高性能开发团队的中文博客。) m$ ~7 ]: `1 `4 d! q
•        Home % \: @( W5 ^; g- v( A
•        Email ! A8 Q4 b- ^/ a- `3 v6 E
•        RSS 2.0 1 C  n! b  O: x0 q+ n/ f
•        Atom 1.0
) |' R( |- u6 rRecent Posts
- w! h: B, W+ T# {- }  U•        思之以实,取之以略,行之以果* * h9 P5 ?& P2 d1 ^
•        HPC,相约TechEd 2009 # i0 s+ m: N4 K7 R0 n
•        Visual Studio 2008 HPC SOA C# 调试器插件
# B; C* ]: p1 \* w4 o•        高性能计算系统栈的推倒和重建(四)微处理机初期
" O+ B; D/ D( ^% J•        高性能计算系统栈的推倒和重建(二) 专有机时期B . ?) r! k; ^# e8 N; V
Tags
% r0 q0 S7 t! Q1 e$ R+ X5 H•        BeautyFromAsh
: n, K4 D$ ^, |4 o; B: q# \% ?•        Cray
  Z* M& F- \0 d* O  k* g$ @•        TOP 500   d9 J1 g$ h' v; G$ j
•        Windows Compute Cluster Server 2003 : S5 Y& o; P* O: r" t, P; X
•        Windows HPC Server 2008
* Y& h! d, l2 ]0 \•        业界动态
: w! Y5 _2 S6 f5 `•        产品介绍 3 c& B5 C/ A9 s2 J& E. L1 g
•        产品发布
4 i, H( c# C/ Q( N3 M$ l•        关于我们 8 g" f5 ^, T# V. Q9 u* N1 O
•        员工故事
( t/ D' C5 O- P•        实习故事
( P6 b0 g* C  F8 \; K•        客户交流 9 t6 p9 T0 _" j( _8 I
•        技术活动 - E, r6 M6 r; }' z8 l% Z. R- |
•        转载引用
' }$ k0 k$ T7 U其他 HPC 博客0 j& b/ w0 @  P1 \- H& {
•        Windows HPC Team Blog
2 J* J9 j: n8 w/ W微软服务器与开发工具事业部(中国)博客
; X. G' ]8 l' C& @' y9 j. D/ V•        微软服务器与开发工具事业部(中国) ' y3 ~6 U9 ]: F, c3 m
•        CLR & Silverlight中国研发团队
5 D1 P; \  r! F% v4 S+ R•        SQL Server中国研发团队 . z" n7 s: q/ h
•        SBS中国研发团队 ' d7 m0 D0 ?! W9 `8 _
•        EBS中国研发团队
$ j1 F# P) f3 N•        WCF Tools 中国研发团队
  [( R; P* a8 e1 T0 r•        Soma的博客中文版
0 `) p* w3 V% p2 i" q- E4 q•        System Center Configuration Manager中国研发团队
6 G" ]( S. ~4 CArchives1 P' n9 F8 u4 L, ]& i
•        January 2010 (1)
0 Y( {. l& ~. }' t•        November 2009 (1) ) b8 L1 C# @8 I2 R0 o" j$ ^
•        September 2009 (4) 4 d8 v  f5 P3 g2 @. X: e
•        August 2009 (1) 6 m$ Z: a- Q* d6 Q
•        May 2009 (2) * h3 J9 U) c% e! ]$ @, a
•        April 2009 (2)
. p8 n( V6 }8 o4 Y5 H: `' J8 v1 q•        February 2009 (2)
3 y, t3 a0 l) Q1 o: F- V•        January 2009 (1) : `- W5 Z* u# ~9 S$ d4 i/ P1 Y
•        December 2008 (3) 9 l) q: P1 }! L" k
•        October 2008 (1) 5 x, b/ E8 M7 D) `* G
•        September 2008 (2) / Y( s5 M$ X8 E$ X) P
•        August 2008 (3) % q" Y+ W+ f' w& U4 N
•        July 2008 (1) 2 k# u2 Z$ B3 I- ~7 t
•        June 2008 (1) 2 _# F* I2 `7 w) C. Q' A
•        May 2008 (2)
: \2 [" L" K( |) V! K•        April 2008 (2)
; P! I, f2 Q6 J! d•        March 2008 (3)
3 W9 T8 D  ~( J$ c' }4 V/ p/ ^•        February 2008 (1) 4 m3 G$ N" c6 l. D
•        January 2008 (1)
- g, q4 I+ |8 H0 h+ V/ ~% ]' [思之以实,取之以略,行之以果*
4 {, Z# T' f* L*注:宋代苏辙在其《新论中》中写道“居之以强力,发之以果敢,而成之以无私”,意谓国家平时要有实力,发动一件事要坚决勇敢,取得成功必须无私。这里借用该格式讲一下在Planning(思)、Design(取)、Execution(行)三个阶段的一点体会。1 R% L' [! ^0 w* H" ~
【题记】细想起来我加入高性能计算中国团队做PM Intern(实习项目经理)已经是去年年初的事啦。在Wei Zhen同学(猛击这里)的不断鼓励之下,我把自己在工作中一些学到的、领悟到的东西分享出来,尽管正确性及普适性值得推敲,我仍然抱着美好的愿望希望将来的实习项目经理能在入职的时候有一个更高的起点,不要像我这样花了大半年时间才渐渐摸索出一些道理(>.<岁月不饶人啊)。& W5 J3 a) n, H& L
什么是PM?我定义不了,不过我老板给出过描述(猛击这里):“PM做得最多的是设计和推动实现功能,确保自己负责的功能可以圆满地成为产品的一部分”。那我就做功能中的planning(规划), design(设计)和execution(执行)三个阶段分享一下心得。
- y" R: n1 j. g6 |: h- f. s" }规划8 B! B) m6 ?5 |  z7 ~) w3 M* \
规划阶段要解决的问题之一就是“做什么”。可能实习项目经理在规划阶段的参与比较少(因为一般来说,由于实习生对产品、产品的客户群、产品的市场并没有深入了解,通常是老板叫实习生去考虑某某功能),所以就特别容易从用户使用情景(user scenario)迅速跳到设计,这一跳的直接结果就是把为了有价值主张(value proposition)而做功能,变成了为了做功能而做功能。这种情况下,目标会定义不清且难以区分优先级,设计阶段不断评审功能规范的结果很可能变得不可控,由此,最终虽然能创造价值,但是创造的不一定是正确的价值。事实上,历史上很多很酷很炫但是在商业上却很失败的产品就是因为没有被很好地PM(注意,PM在这里是动词)。所以,在规划阶段一定不要怕花时间弄清楚用户最核心的需求到底是什么,自己要做的东西到底是要创造什么明确的价值(>.<为什么听起来像风险投资者问创业者的问题)。
3 E" h$ }; U; m# a2 G' g7 y设计
+ b* N+ J( l8 T& ?* _+ g关于设计阶段,我们先考虑一个问题:假设你的城市在推动经济适用房,而你恰好是该市经适房申请政策制定者。你的顾问A帮你列了10条经适房申请标准,并建议申请者必须提供相应的10份证明材料。可是你的顾问B告诉你,由于申请者太多,从政府现有的预算、人力及效率要求来看,最多只能审查每个申请者的5份材料。你该怎么办呢?! @2 H% `* j: M8 ~
一个办法就是将证明材料数量减少到5份。这个办法看似是好的,因为它根据实际的资源限制,做出了调整和让步(就像软件开发工程师资源不够,于是砍掉一些功能)。但其实它是不可行的。为什么?因为只要求提供5份证明材料,就会让另外5条标准形同虚设,而显然,“只有满足标准的人才能申请经适房”这个目标就无法实现。4 S! V3 U, S2 `0 ~5 X. T4 b9 O
那我们该怎么做才对呢?找正确的做法之前,先要知道错误。事实上,刚刚的想法错就错在它是一个典型的“全部或没有”思维:把“证明材料”和“审查”作为一个整体,觉得有一份材料,就该有相应的审查,没有审查,就索性舍弃对应的材料。; q  D/ W; O8 Q6 u
抛弃“全部或没有”的想法在设计阶段也同样重要。某次功能规范的评审会上,我们的架构师(猛击这里)说过“每个PM心中都要有个路线图(注:译自Roadmap)”。当时我心中的感觉就是“醍醐灌顶”。 路线图的终点,可能就是那个“全部”,起点就是“没有”。千万不能因为资源不够,就停留在那个起点上。刚做PM,可能会为评审过程中部分功能被砍感到心痛,会觉得一些功能只有作为整体同时存在,才能达到设想的完美效果。作为PM,要舍得功能被砍,但是心里也一定要清楚,每次砍功能,让你从路线图的终点又退回了多少,让你的目标妥协了多少。毕竟一个产品会有多个版本,每个版本的开发中,又有多个里程碑,将来总归可以向终点靠近,更何况很多情况下,达不到终点,也能满足80%的用户的需求。
: u9 ]8 S) P8 ]% ~1 {1 @回到最初的问题,打破“全部或没有”的思维,我们就会想到解法:还是要求申请者提供10份材料,只不过审查的时候,忽略其中5份。规定了证明材料却去不审查,确实让证明材料的作用妥协了,但证明材料的存在,至少能让部分不符合条件的申请者望而却步,所以我们的目标没有完全妥协。至于忽略掉的5份材料,可以在将来成本能承受的情况下再去审查。
: q" G1 T2 o8 R7 }  J7 f4 M1 ]执行
" `5 x1 r1 y' _( d执行阶段,我最大的领悟就是不要让自己的执行力在执行阶段下降——听起来很悖论。其实由于规划与设计阶段,自己相对明确自己该做什么,一切也只有靠自己去推动才能有进展,而到了执行阶段,很多事情都是开发工程师在做,我只是跟开发工程师商量一个计划进度,并不断关注实际进度。事实上,价值主张是承载在最终交付上的,所以PM应该要关注去交付产品,去把产品推向市场。同时,这个阶段中,很多实现上的小选择会影响到最终的交付,所以跟开发工程师一定要保持密切的沟通。现在想来,我的很多项目在执行阶段都可以做得更好。
5 l4 x1 `8 C; F8 d1 A以上是我针对每个阶段选出的一点感悟,事实上在高性能计算团队近10个月的实习中,每天都在学习,总是逐渐体会、领悟到新的东西,以后会多贴出来与大家分享。:)) F! k. Y& ^/ b$ o
Ye
/ N* l9 S7 R$ H: e: o/ O9 O实习项目经理, X$ ]  d! H; P
Posted: Wednesday, January 20, 2010 2:31 PM by yew | 0 Comments 8 I! j- z, G" l3 c4 P
Filed under: 实习故事- F6 F6 n. s; a0 {9 b( E$ h
HPC,相约TechEd 2009 / i' }* k$ p6 G2 j/ ^/ U) v; ^
2009年微软技术大会(TechEd)中国下周就将在北京召开了,服务器与开发工具事业部的中国研发团队将派出31位项目经理、软件设计开发工程师和软件测试开发工程师,与中国程序开发者和IT从业人员分享我们最新的产品开发。以下是HPC相关的课程和专家交流沟通会环节,徐明强博士将在大会现场与大家面对面交流。
, k2 [, }- \+ F; L$ O! x: k) z课程:11/6, 13:00-14:10 使用Windows 高性能计算服务器高效提速应用(WSV331)( E* U. v& ^, a; i9 O; o+ `
您的应用中的算法和商业流程是否包含众多独立计算单元而需要冗长的处理时间?您当欣慰是这些应用是高性能计算应用范例。在此讲座中,您可以了解如何使用Windows WCF 和Windows 高性能计算服务器2008 来对此类应用进行多个数量级的提速。 我们将着重演示讲解高性能计算编程模式能够简便地、高效地将客户端应用的计算单元负荷卸载到强大的集群上,以达到可扩展性的提速功效。
6 P: J7 u! i5 K+ X! A6 d/ M$ N专家交流沟通会:11/6, 15:50-16:35 微软高性能计算在金融和制造业的行业应用(MST006)! P3 ]% c$ {5 h  _- T% q9 Q
本沟通会将和大家探讨如何利用微软的高性能计算平台提高金融行业和制造业的生产率。7 U+ L0 f+ V1 H# }) @5 Y! K' S  L
Posted: Monday, November 02, 2009 2:35 AM by Zhen Wei | 0 Comments . l4 o, ]. B3 H1 a
Filed under: 客户交流, 技术活动, Windows HPC Server 2008
- i. f/ r( A- T' VVisual Studio 2008 HPC SOA C# 调试器插件
: P4 T' C) d" F$ r; a就在这个月,负责微软Developer Devision工作的微软全球副总裁Soma先生写了一篇博客介绍Visual Studio 2008和即将发布的Visual Studio 2010中支持并行程序开发的一系列工具。在这篇博客(中文翻译版)中,Soma先生不仅介绍了用于开发MPI程序的MPI debugger,还介绍了用于开发Windows HPC Server 2008中集群面向服务架构(Cluster SOA)应用的SOA Debugger插件。在我们前面一篇博客中已经对MPI Debugger的功能做了介绍,其实SOA Debugger也是我们小组努力工作的成果。通过本篇博客,我想请大家和我一道预览即将发布的HPC SOA C# Cluster Debugger插件。
8 G$ y* ?+ C% r, G+ R大家知道集群面向服务架构是我们随Windows HPC Server 2008的发布而新推出的并行应用架构和编程模型。通过集群面向服务架构,我们可以把原先运行在单机上的WCF应用扩展成运行在`Windows HPC Server集群环境中的并行应用。要创建一个SOA应用程序大致上需要经历以下的三步:创建服务(WCF Service);将服务部署到集群中;创建客户端应用。如果我们想调试包括客户端和服务在内的整个应用,还要加上如下的步骤:1)在运行服务的计算节点上安装并运行远程调试器(msvsmon.exe);2)在Visual Studio中运行并调试客户端程序;3)在SOA会话(SOA Session)被创建以后,将Visual Studio调试器附加(attach)到计算节点上的服务宿主进程(HpcServiceHost.exe)上从而调试服务进程。这样调试一个SOA应用一共需要3+3=6个步骤,这还不包括每次修改服务的代码还需要重新执行服务部署的过程。听上去是不是很复杂?别急,下面随我看看SOA Debugger如何为你简化SOA应用开发和调试的体验!) y0 X+ N/ l' E
安装SOA Debugger插件后,在Visual Studio的新建C#项目的对话框中,我们看到了一个新的项目类型:SOA Client。没错,就是它了!, u0 J6 Q8 ^$ \: y
* O( Z: k' M2 l9 E3 ^% V% ?5 R; J& h
建立一个SOA Client项目并把它命名为MySOAClient。在我们研究这个新项目之前,还是让我们进行SOA开发的第一步:创建服务程序。大家知道SOA服务程序其实就是一个WCF服务,你可以把现有的WCF服务项目添加到刚刚的MySOAClient解决方案中,也可以在这个解决方案中新建一个WCF服务项目。在我的示例中,我在解决方案中新建了一个叫“EchoService”的简单WCF服务。在创建完服务之后,让我们跳过下一步“将服务部署到集群中”,因为下面我们将看到SOA Debugger可以自动帮我们完成服务部署的工作。
) {" p: l* |) |. M1 m下面让我们回到客户端项目来创建客户端应用程序。大体上编码SOA客户端程序和编码普通的WCF客户端程序比较类似,在此就不一一赘述,具体信息大家可以参看Cluster SOA架构白皮书。客户端编码完成之后,我们还需要对项目的一些属性进行设置才能进行集群上的调试工作。在Visual Studio的解决方案浏览器中右键点击MySOAClient项目,点击属性打开项目属性页面,如下图,, }+ U& J# Z2 W/ A

9 m9 g1 _* r( A7 |, F我们可以看到这个项目比一般的C#项目多了一个SOA Settings的属性标签。在SOA Setting的属性页中,我们首先在Head node下拉列表中选择我们的集群头节点名。这里的头节点名必须与我们在客户端代码中创建的会话启动信息相一致。比如在我的代码中,) {. a, b9 b  S! e; A
……& x2 W8 c$ L7 ^1 l
SessionStartInfo startinfo = new SessionStartInfo("SHPC-0052", "EchoService");0 p/ q( m/ h+ ?, A/ \+ D3 B" }
……: n* x( ^9 N3 u3 j& ^4 n' X
于是这里我就选择头节点为“SHPC-0052”。接下来我们需要在Available service列表中勾选需要调试的WCF服务。在这个列表中会列出当前解决方案中的所有WCF服务类型的项目,我们只需要选择客户端代码调用的服务(或者多个服务)即可。这里的服务名和服务项目名称以及会话启动信息中的服务名都应该是相同的(在这里是“EchoService”)。除了头节点名和被调试的服务以外,其他的属性都有合适的默认选项,我们暂时不要改变它们的设定。好了,调试的准备工作全部完成了,让我们开始调试吧!
# J- x4 Z4 w6 M/ ?: b* J首先将MySOAClient项目设置为调试的启动项目,随后我们在客户端程序创建SOA会话(Microsoft.Hpc.Scheduler.Session.Session.CreateSession(startinfo))的代码后放置一个断点。按“F5”启动调试器,MySOAClient程序会运行到CreateSession()之后中断。这时SOA会话以及SOA服务job已经创建完成了,让我们来看一看Visual Studio是不是已经附加到所有的服务进程上。从调试菜单打开进程工具窗口,我们可以看到,8 ~; P0 W' \+ e: }. r/ ?0 |7 S
5 C, Y+ ]# f& s
Visual Studio调试器已经附加到所有的服务宿主进程上。WCF服务部署,远程调试器的启动以及附加远程进程的工作都被SOA Debugger自动完成了,是不是有WOW!的感觉呢?既然我们已经完成了服务进程的附加步骤,我们就可以直接调试WCF服务的代码了。所有现有的调试器功能我们都可以使用,包括在在服务代码的断点上中断,F10/F11的单步调试,表达式求值(Watch)以及条件断点等等。当调试结束后,SOA Debugger还会自动完成服务的清理工作。
1 }7 W4 f% ^$ w我们已经完成了整个SOA开发/调试的过程,回头看看是不是很简单呢?原先的六个步骤最终被简化为:1)创建服务;2)创建客户端程序并设置SOA调试选项;3)F5!这三步,是不是很简单呢?6 ^3 O0 B2 R- b. y5 N5 N# h5 U
以上就是对SOA Debugger的简介,SOA Debugger中还有很多很cool的功能,包括:调试不在Visual Studio解决方案中的WCF服务; 为被调试的服务部署额外的文件;只调试运行在特定计算节点上的服务;只调试某些特定的服务请求(Service Request)。对于这些功能我就不一一介绍了,我期待你试用我们即将发布的SOA Debugger之后自己亲身体验所有这些实用的功能!我们的开发工作还在进行之中,在最终发布之一定还会有一些改动,如果大家有什么意见或者问题,欢迎回帖。谢谢!
% O$ p/ [, q4 t& CPs.,Visual Studio 2008中的MPI Debugger 插件已经发布了,欢迎大家从这里免费下载使用。Visual Studio 2010中的MPI Debugger将随Visual Studio 2010发布,敬请期待。" B9 l3 k, V; x% w& M' e7 _+ ~
Posted: Monday, September 21, 2009 10:47 AM by Keshuang | 0 Comments 8 P! y7 X( u# g* Q
Filed under: Windows HPC Server 2008, 产品介绍
7 N" g3 M7 e6 P$ d. D5 c( j高性能计算系统栈的推倒和重建(四)微处理机初期 8 n: J7 F0 ?% }8 d3 T
逃匿MPI进程( ~* D! q: V: R. z2 u/ M" l
1993年我加入阿冈国家实验室数学和计算机科学部做Ian Foster 的博士后。
2 e+ a  F: D# _5 w3 F/ X
5 }6 g$ H# P& B" C8 ]+ LIan 告诉我,现在科研经费的要求和实际实用应用相结合。为此,我们不能再搞什么logic / functional 语言了。必须和Fortran/C有关。 此时他发明了一个新的语言Fortran-M (M- 代表message passing)。 这个语言实在太像Occam了。Occam 里有Channel, Fortran-M 叫port. Occam的Channel 是强类型的,Fortran-M Port 也是强类型的。Occam 里有Process,Fortran也有,并且,Process可以动态产生!# V* M2 s  C& F& b! o  r' L
& f6 [9 J: L1 }# ]6 z
Source: 4 R! a' E5 i6 }6 ]$ [$ c! T% C" @+ Q
我为这个语言写了编译器。Steve Tuecke (后来的globus 架构师)和Bob Olsen写了运行时系统。我倒是非常享受这个项目。那时的我,就是喜欢往系统栈的底层钻。当时的我,觉得世界上没有任何其他的研究比创建并行语言的编译和运行时系统更有吸引力。我当时觉得,并行计算的栈MPI 已经差不多完善了。而并行语言和运行时系统将是把并行计算推向主流的关键技术。
. q) p0 Y4 u2 T1 G( |
, L3 }) Z. g, m# \不过,一件事情改变了我的看法。8 h, h9 R4 K5 w7 B. J
一次,我正在做MPI 和Fortran-M 的性能比较实验。结果Rusty Lusk来到我的办公室。满脸不悦。他说我在他的机器上运行了一个MPI 程序,使他的机器非常慢。问我是否可以杀掉它。我觉得很奇怪,我是用了他的机器跑了mpirun. 不过我已经Ctrl-C停掉了我的mpirun。怎么还会在他的机器上跑呢? 后来才知道,他写的MPIRUN是使用rsh 在远程机器上启动MPI 进程。Rsh可以将远程进程的stdout, stderr 转到客户端,使用户有个透明的感觉。但是,当用户键入Ctrl-C 的时候,只是把mpirun 进程杀掉,而远程的进程就逃匿了。 不光没有被杀掉,而且在背景里跑得非常欢。 结论是,Rusty是“自食其果”。  T, @1 F2 H, Y2 u7 Z+ ^+ |
我搜索了网络,发现这种逃匿MPI进程(Runaway MPI Processes)是许多超级计算机中心中造成极大的破坏。用户总是抱怨,怎么超级计算机越用越慢!其实都是因为每次mpirun 非正常中断后,在远程节点就会有逃匿进程出现。管理员最头痛地就是要时不时地登陆到几十个甚至上百个节点上去清除这些逃匿进程。  n, x" n7 g, x! Y' S; v3 F2 I# D
后来当我加入Platform Computing时候,周松年问我能为MPI做什么?我就说我要解决逃匿进程问题。在1996年我花了半年写了一个Parallel Application Support Software. 能够完全解决逃匿进程,并且还能精确地采集计算资源使用数据。后来成为公司LSF Parallel产品。# V* k& G5 j, q" T! K
今天您使用HPC服务器的MSMPI,您也不会发现逃匿进程。这就是投入生产使用的运行时系统和学术界软件的区别。 这点,我们必须归功于那次Rusty Lusk和我的小小的不愉快。这点小不愉快,让我开始关注到许多用户因受MPICH的启动方式而导致的逃匿进程之苦。 : K) Y7 p/ B1 X# v* ?9 n
Posted: Monday, September 07, 2009 8:01 AM by mingqxu | 0 Comments
7 ~8 g: k2 R3 m. _$ iFiled under: 业界动态, 员工故事, BeautyFromAsh
( j& j3 i3 C0 `( d高性能计算系统栈的推倒和重建(二) 专有机时期B . F. ^% }) E& P5 U
Speed beats beauty- `4 J) G4 t5 {& d+ c
并行机在专有机时代分两大阵营,共享内存和分布式内存结构。1 E! }9 q' m6 d' X2 L
  
! ]4 |6 ?  [+ z. V共享内存所提供的编程界面是非常优雅的。分布式内存机器的编程界面是基于消息传输库,不够优雅。串行程序的并行化相对容易的多,因为任何一个线程都可以访问到所有的数据,因此不需要对原来串行程序在结构上作大的改动。 而为分布式内存机器写程序却不同,首先应用域的数据就要分块,每个进程不光需要本地数据,还要边界数据。在本地计算完后,还要和邻进程交换数据。程序结构上要做大改动。
8 `# P  l9 j# H0 |# M. T. A' W. I% B共享内存最大的缺陷是物理上的。是因为其扩展性差。当时80年代的处理机是很慢的了,可是到了32个就出现瓶颈。 这无法能够满足美国能源部许多宏大挑战性问题(Grand Challenge Problems)。所以当时分布式内存的拥护者流行的一句话就是:“Speed beats beauty”。
& P0 m& I' r4 T4 W一个很自然生发的美好愿望就来了:能不能使用物理分布式内存,在其上建立共享内存的界面。 这样我们不是就取两者精华去两者之糟粕吗? 分布式共享内存(Distributed Shared Memory – DSM)这样的机器就成为了专有机时代最后一个大创举。% Q9 u. L6 b/ ~/ O0 q9 ]
这个基因杂交出来的机器却有致命性的DNA缺陷。我一九九一年加入了曼彻斯特大学新奇计算中心 (CNC) (Centre for Novel Computing) 在John Gurd教授下作研究员。John Gurd 是数据流机器的知名学者。9 W; u; P" z7 _2 g5 w( X. J8 x
, r/ I- i  Z  f
我加入后不久,CNC就拿到一笔科研补助金(research grant) ,Gurd 教授在诸多的专有机厂商中挑选了一个Kendal了 Square Research (KSR)。其用意在于这个中心的名字里有个“新奇”。九十年代初的英国,爱丁堡和不利索托(Bristol)的中心里有不少大型专有机。绝大部分都是分布式内存。所以,Gurd教授觉得再买一个属于重复。正好KSR 是一个分布式共享内存的机器。这也就给了我一个和这个杂交机器零距离接触的机会。在这个机器上可以用标准的Pthread库,可以用锁来同步对于共享内存的访问。操作系统自动将不同线程分布到不同的节点上。而节点之间的操作系统实现了定制的多机内存的一致性协议。这样编程的确简单了。 机器及软件环境的细节大家可以参考维基百科:http://en.wikipedia.org/wiki/Kendall_Square_Research。 恕不赘复。: h  x- ~3 b- \: h& o) y2 s; J
我当时对于这种新奇机器是充满热忱。在短短半年内,我移植了许多并行逻辑和功能性语言(Parallel Logic and Functional language) e.g. Strand, PCN 等。我之所以能够很快地移植这些语言,是因为共享内存不需要对程序结构有大的改动。6 T  b" l8 ]& Z
那么KSR致命DNA弱点在哪里呢?就是性能和扩展性差。为什么物理分布内存还会有性能和扩展性问题呢?5 |" J' X% f+ W  @
首先,它是在硬件和操作系统实现内存缓存一致性协议。为此它的RISC 芯片是专有定制的。这就意味着它无法和业界的豪门IBM, Sun, SGI, HP等RISC 芯片的性能匹敌。第二,也就是最关键的, 这点还是后来我加入Platform Computing后和公司的CEO周松年聊起后受的启发。周松年说:“DSM 在性能上无法和消息传输库并行化的比拟的原因是,DSM的管理单元是进程的地址空间的页(page),它无法反映应用对数据的访问情况(access pattern)。而消息传输库使程序员能够充分利用应用对数据访问的知识来优化并行算法数据访问的局部性(locality)“。 他的透视使我顿悟。缺乏对于应用访问数据的知识,就无法优化对于数据的访问的局部性。 分布式内存的机器造成了多层内存(本地和远程内存)状况,影响应用性能最大的因素,就是是否能够极大限度地访问本地内存。5 ?/ l$ ^- Z2 }; A2 P' |
自KSR 破产后,我再没有看见过一个DSM的机器。5 }) J; t1 r. V& s* ~0 K
(待续)
回复

使用道具 举报

418

回帖

1863

积分

121 小时

在线时间

上尉

注册时间
2009-7-24
金币
1378 个
威望
0 个
荣誉
0 个
累计签到:6 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2011-3-11 17:01 |显示全部楼层
高性能计算系统栈的推倒和重建(三)微处理机初期
! Y" N7 x1 ^6 l/ l6 ?望洋兴叹
( D4 n& c$ p! l' |: \0 n在专有机时代作并行计算的研究,你得会投“胎”。当时,全球科研的浪尖是在美国,能在Communications of ACM上发表论文的,都是美国大学的。用的HyperCube, Cray,Connection Machine 2 等大型机。而在英国,只有国产Transputer。 更可悲的是,我所在的埃德塞特大学(Exeter University), 我们当时只有四个transputer 节点。当时在英国,可以说是望着大西洋对岸的美国兴叹啊!我看美国人的论文的心情,就好比是一个穷人家的孩子偏偏喜欢上摄影,然后看着有钱人家的少爷拿着长焦、广角镜头,口水只能往里咽。
, q% V2 W) h* P1993年,我到了美国阿冈(Argonne)国家实验室后,我就好像是小孩进了糖果店,因为那里有不少专有机(CM2, Paragon, Sequent等)。我问秘书预订了每个专有机的用户手册。每个手册都有电话簿那么厚,当秘书象我小时搬蜂窝煤一样把几英尺厚的手册搬进我的办公室后,她累得大抒一口气。现在看来,真是浪费了,这些手册我都没有用过。不是我没有用功,而是专有机被第一批微处理机颠覆了!
4 c  Q6 [# b, b2 i( t) p2 u消息传送库pvm, P4和 MPI* `  e! q9 e8 z* `1 B7 L
在80年代时候,多种消息传输环境被开发出来。有些是为专有机开发的Ncube. 而另外不少是为Unix工作站开发的。比较有名的是Oak Ridge 实验室的PVM (Parallel Virtual Machines) 和阿冈(Argonne) P4 和PICL, Ohio 超级计算机中心的LAM。 0 G* g# n4 O$ i, r
当我看到PVM 的时候,我也就不望洋兴叹了。因为用工作站组装成一个超级计算机,不用花大钱去买专有机。而且写程序也是用常见的C或Fortran语言。不需要专有的语言。 一下子,高性能计算的世界在我眼前变平了。6 R' F0 O- g1 f' t! \0 X
到了1992年末,听说又要搞个什么MPI。我和一帮英国同事都在笑,怎么又来一个消息传输库。后来才知道,我们笑得过快。原来,MPI是要吸百家之长、制定工业标准、省得大家重新发明轮子、浪费体力精力脑力人力。 Argonne和Oak Ridge 都是美国能源部的实验室。两个实验室,为了一个消息传输库争夺用户,结果使得能源部的应用开发成本提高两倍,这是实在说不过去。1994年这个标准终于出来了,不到两年的时间出来了这个标准,在HPC领域是相当快的。而且有许多学术界的人士参加的标准Forum, 一向是拖拖拉拉,没有目标导向,企图把海水烧开。为什么MPIForum 能够如此神速地推出此标准呢?
' T$ P2 b/ J4 x3 W4 Y+ h这要归功于两个人,Bill Gropp 和 Rusty Lusk, 他们都是从阿冈国家实验室的科学家。不要笑,他们的抬头就是“科学家”。7 U+ b' S  s' Q, M+ ^& a
  8 _7 q2 @* I# d7 L; y4 V6 B
Bill Gropp Rusty Lusk
( _/ q8 V6 @% R! s( t+ B; U* ^他们告诉我,最重要的原因,是MPI一开始就有一个参考实现:MPICH。 是他们两人主写的代码。所以,一旦有了一个可以参考的MPI库。一些应用就可以开始并行化。这样,许多没有任何应用场景的“好主意”,就很容易被扔到“Out of scope”栏目。帮助参加讨论者集中注意力。还有,他们采用的方法是一天早中晚连轴转的方式,如此高强度的讨论,只有那些铁杆、硬核的人才能挺得过去。所以,也把一些不懂行,不委身、但往往容易随机化讨论的人自然淘汰出局。
+ g+ v; B! C8 z( D* L' J5 F& O很多人把集群的概念归于Beauwolf. 其实,集群已经在九十年代初,就有了。许多人都以为,是beauwolf 集群后,工业界才开始使用。历史并非如此。听我给同学们表来。
' {, y: P: k2 O3 q) l; P8 J: d制造业最早的投入生产的微处理机集群  B% n$ ]% E) W9 H1 b. i1 k
在美国East Hartford,驻扎着著名飞机发动机厂商 Pratt Whitney的设计中心。过去,为了测验叶片的强度,他们要将一个冰冻鸡扔向高速旋转的发动机上,然后分析断面。 毫无疑问,造价极高。后来,他们使用Cray来做模拟仿真。只是能够模拟单叶片。而且Cray成为稀有资源,每个工程师的作业,都要排上两天才能算上题。
! p. L- {4 u, t# M" L90年代上半叶,Pratt Whitney的CFD组,开始自主设计、开发一套消息传递系统,Prowess。它可以扩展到上千台太阳工作站。其中带头人名叫Craig Fischberg, 因此在制造业界成名。95年左右,GE 飞机发动机给了他双倍工资并为其妻子安排了很好的工作,把他挖了去。后来,他又用MPI 来为GE建立了同样系统。从此,他在GE 的地位如日中升。
+ _. ~! G0 ]  D+ H一想起工作站资源觅食(Cycle Scavenging)人人都以为最早是由Seti@home. 其实,在九十年代初在Pratt Whitney 已经有了。- L8 A7 R6 w2 j' X# Q, {4 {# X
那么从Cray 到工作站集群到底带来什么大不了的效益,使得GE出血本要挖人才呢? 后来,Craig Fischberg 跟我讲,以前只能在叶片上模拟,后来能够把模拟整个发动机。以前的排队时间长至3天,结果晚上提交,第二天一早就可以看见结果。结果呢,高耗资的物理测试减少了,设计时间缩短了一半,而且飞机引擎的油耗效率大大提高。所以,GE能不受刺激吗?花了双倍工资挖到了Craig Fischberg是非常小的代价。1 Z  r  t/ i! z6 f5 p2 n
成百上千的工作站的计算能力被完全释放出来。他们用的作业调度器是Platform Computing 的LSF。 所以,在九十年代,LSF的用户手册写着“Unleashing the Power” – 释放能力!就是从这儿来的。" f% w( ^8 E: `8 q# a
商家简介- x1 G/ j$ I8 e7 z: b5 E
机器厂商        IBM,SGI, HP 和SUN" u7 L( b2 _! l6 V! y
硬件        精简指令芯片" @0 b8 {+ K1 W
处理器间网络联接        定制化的网络
2 z2 B4 u/ ^2 T4 g; D+ R; q; b: K- O. n应用软件编程界面        MPI-工业标准 PVM 和其他 消息传递软件包
. c& N) B1 K  s% K$ T7 F作业调度软件        LSF, PBS, Sun Grid Engine (SGE)
* D! k! f+ m% @ 0 ], Q' d4 m) u; o) H3 J; b
为什么会有那么多的定制化的网络联接呢?我们下次再说。
( d+ b, f3 }3 o3 i- \& a: J8 q下次内容: 我和Rusty Lusk 的一个不开心遭遇引发我的奇想。5 H8 r& I' _& d4 J8 p& p
Posted: Thursday, September 03, 2009 11:13 AM by mingqxu | 1 Comments
5 n( I( _% W0 h3 i/ a$ S9 k, LFiled under: 业界动态, 员工故事, BeautyFromAsh2 S4 ~! S+ O9 ?) ]# d( _! ^( c
高性能计算系统栈的推倒和重建(二) 专有机时期A
' {+ _, t% g  Q1 c2 b6 Y4 `选择并行计算, 被人泼了冷水& u3 Y( d% |/ Z  f# T7 X
1987年春晚,费翔的故乡的云唱红。歌云:“归来吧,浪迹天涯的游子“。可我那时却踏上了留学之路。在研究人工智能高潮时候,我选择了并行计算。为什么要选并行计算呢? 当时我选主攻方向的标准非常单一,那就是越新越好。我出国的目的就是要学习最新的科学技术,因为当时我坚信只有科学才能救中国。当我把英国导师的研究计划提议书给国内导师过目时,他的第一的评语就是:”我看提议书中的许多参考资料都是当年或近年出的,是国际领先的方向“。( r1 U$ S& K$ T( {2 q
在英国1988年的“并行计算专家会议”上,我遇到一位工业界的人士, 互相介绍时候,我兴奋地告诉他我的博士主攻方向。 他的回答是我一生都不能忘记: “并行计算不会有前途的。将来人们将造越来越大的向量机。没有人愿意将自己的应用并行化,因为太难了”。
) t* {0 k, @0 j% _- n3 ^. d现在看来,这个专家是大错特错了。 虽然如此,我还是非常赞赏他的坦率。他完全可以不必加什么评论,事不关己,可以高高挂起。他不愿意看见我往火坑里跳的精神可嘉。不过,专家的话也是要分析地去接受。而且,当你和专家有不同意见的时候,也不要迷信。 长江后浪推前浪,新一代要超过前一代。不迷信权威是科学向前发展必要倡导的精神。
9 U8 V8 T# V$ g我没有相信他的话。
/ ^; J2 t9 s# |$ f7 k这段时间的高性能计算的生态环境如下: 8 D: L# {: e+ L( v' f# D2 `3 U
机器厂商        Cray, Thinking Machines (CM-5), Sequent, Kendal Square Research (KSR), INMOS (Transputers)
: S4 X; q9 d" J硬件        定制化的芯片  e6 _3 [4 K) V" Y- C7 Z
处理器间网络联接        定制化的网络
+ ~$ V* m+ H0 a2 V) U软件        专有语言或FORTRAN的专有指令和工具
8 D0 [  n6 m. n2 v: F% ?我们看见,“定制”“专有”这是造成价格天价的原因。 那时候,CRAY只有少数西方的国家实验室和大型制造业公司才能拥有。 只有少数先进国家才能拥有。杜甫一句诗词,似乎表达了我当时的意愿并有预言性:“安得广厦千万间,大庇 天下寒士俱欢颜”。 高性能计算关乎全世界的一项技术,它的益处不能被一个国家所禁锢和独占。这二十一年,我感觉有支看不见的手,把高性能计算机从国家实验室的围墙里,推出到制造业,电子业、生命科学和制药业,石油业,金融业。 从美国、推向西方先进的国家,又推向东方。 曙光和微软研制的两百万亿次计算机就是一个例子。
  M  l8 I2 @. h% T/ ~; D$ c: P小心处理器杀手
. F, Y) X6 Q/ T! D4 U0 L. k2 |在一九九零时候,美国劳伦斯Livermore 实验室的Eugene Brooks 说了一句话:“Beware the killer Micros” (小心微处理器杀手)。 他这句话叫许多向量机的生产和设计厂商诚惶诚恐,为什么呢? 我在微软一个同事,Frank Chism, 曾经是Cray 的雇员。他告诉我,那时候每年CRAY的CEO和克莱斯勒的CIO的谈话是非常痛苦的。 克莱斯勒的CIO就问CRAY的CEO:为什么HP的工作站比你们CRAY要快,而我却要支付更贵的机器呢?“。 微处理机的日益强大的性价比使之取向量机而代之的成为必然。
3 E+ H- L7 q3 J! w/ e/ s; T给我泼冷水的英国专家有句还是说对了,那就是并行化一个程序是很困难的,为什么别人会有人去做呢?不过他的话有个逻辑谬误,那就是:“没有人会去修改应用,因为太困难了“。 出力不讨好的事尚且有人做,更何况出力能讨到好的事情呢?这时候,美国制造业的一个企业,就成功地用工作站替代了向量机来解决计算流体力学的问题。我们下次再聊。0 }+ _# j0 A6 v! }; Y1 R
对于专有机的Occam语言的三大遗憾; u6 j2 f) \* l4 e% E1 d
Occam 语言是我接触并行计算的第一个语言。这个语言是以一个哲学家Occam命名。提起他,我们都知道有个Occam剃刀原则(Occam Razor)。 就是:“Keep it simple” 原则。这个语言之简练和直观不逊于其命名。它用Channel, SEQ, PAR 和ALT 等语言部件,可以构建各种并行进程及其通讯和同步场景. 下面程序实现了典型的生产者和消费者通讯的例子:
% l5 P  G8 L$ h' UPROC producer (CHAN INT out!)
. d3 {* `: m8 g" w  INT x:
% W0 D; C# `4 x4 k9 q  SEQ1 K& W9 t! y1 m% U9 M2 Q, d: a4 _
      x := 00 |8 T/ e: }/ t7 {
     WHILE TRUE
- |( \9 F' Z' B& s1 m9 i( v         SEQ
& |  J+ A1 C3 i             out ! x
, ?  Z4 {9 a# A; E7 d# `! H3 s9 l             x := x + 1
/ {5 P) q9 z6 D) W8 Y:. I5 K3 z  G& C
PROC consumer (CHAN INT in?)
& G9 `3 @4 Z' D3 \2 ^& H7 Y4 A    WHILE TRUE4 a% i& y) `" l! Z! L6 S
       INT v:* W3 S  ^4 m8 A0 }+ Z, S+ ]. i3 h
       SEQ
( v) Q5 U) g7 @( }/ h           in ? v! J. n# A5 ]1 H3 K
           .. do something with `v'1 b* ]$ Q  B: F$ c8 V) v4 u
:
1 x: I& j* F% e: K2 I, oPROC network ()  S5 ^' Q4 r+ w3 s# O& F
    CHAN INT c:
& n* u& R" F! G' _% x/ Z/ g( h4 _9 R    PAR; E- U8 g* E  E; {( U% ^
       producer (c!)0 f1 A  `( _7 v$ p2 P% b0 T
       consumer (c?)
+ r) x- K' D5 S. L' b! p# H# {:
4 U( d" N8 `3 j/ D/ d! W我自然是被这个语言着迷。可惜好景不长,我立刻发现Occam 语言的三个局限:' G/ a6 u2 f: R
遗憾一: 并行进程的静态、编译时决定的。不可能在运行时动态产生进程:6 j! O5 [: j/ e6 b( U
PAR I = 1 to N
# b6 Z8 I, ~+ U! X    Process (I): C; j+ d( q0 J
这里N必须是编译时就确定的常数。这样对编写通用目的程序库带来很大的麻烦。 就好比MPI 用户没有办法根据MPI Rank 和MPI_Size 来动态划分域,只能硬编码其处理单元数量,那么今天恐怕还没有Nastran 等ISV通用库。 和我一起做博士的某英国哥们,他曾说要解决这个问题。我一直很感兴趣,不停地问他技术细节,结果他说了半天,我还是不清楚。说句实话,到今天,我还是没有明白。 后来这个哥们找到了工作,放弃了博士。
& X1 R' _  R" a+ c- U' G4 Y- R到了后来1996年,MPI-2制定的时候,我参加了关于动态创建进程的讨论。当时我已经加入了Platform Computing 作LSF, 可是这些MPI专家们对于如何映像进程到处理机的理解不够透彻。他们没有认识到,动态创建必须基于一个资源管理的调度系统。 而他们没有有效地将需求及时提供给作业调度厂商。结果,现在有许多的MPI2 动态创建进程的实现,但是没有哪个是和著名的作业调度器集成的。 原因就是,大部分作业调度器的资源分配是静态的。一旦资源分配后,就无法改变。到了Windows HPC Server起步在2004 年的时候,我设计作业概念就考虑到作业当能伸能缩的. 因此,Windows HPC Server 是为数不多能够支持MPI 2的作业调度系统。- f" Q9 P7 v; t& o# C. t
遗憾二: Channel 是没有缓冲的。一个发消息的进程,如果对方不在受的时候,就会被阻。直到有接受消息的。开始还觉得没有什么,结果不知道多少看起来不会死锁的代码,结果给死锁了。比如,两个进程计算后相互交换结果如下,就会死锁。% e# T/ `- p& i0 Q# H! h) S/ }* x
PROC left (CHAN INT toRight!, CHAN INT fromRight)5 A( j: ~! k7 c5 U. J5 ^
    … compute' k2 z5 G; ~. m6 N0 U7 N
    toRight ! localResult
$ ]* l! ~. W: M. D2 a  X    fromRight? neighborResult
7 ^5 r! Z) B: A! c' I' h& E9 i:, I/ B9 d! m" _5 L3 Q: ~
PROC right (CHAN INT toLeft!, CHAN INT fromLeft)# F4 G6 B# ^+ F' d& }
    … compute# S4 j+ H6 R  i  e+ Q. W
    toLeft ! localResult% M" y" @2 c& j- u" f9 I/ p2 I- `
    fromLeft? neighborResult- J6 |8 o2 s5 Y4 K$ S) d5 ?
:/ `( r( V: Q# S/ t/ N% t" c* Y9 I
CHAN INT c, d:
2 d# X( d3 g; g    PAR
( b2 |# @4 l8 c    left (c!, d?)
$ g! K0 T8 M: S) K, n4 r    right (d!, c?)( M; O: f# U2 ~' @
原因就是,对于left 进程,toLeft! localResult 会被阻塞,因为right 进程还没有接收消息 。 right进程也同理被阻塞。现在同学们用MPI的时候,已经对于MPI 库中所提供的消息缓冲区习惯了.  当我发现此功能后,顿时心存感激。
8 w/ j* _+ B" L  U1 O  [遗憾三:进程和物理处理机之间的映射是静态的
9 M6 n0 K7 M& B5 {1 V6 d$ ~. P这是一个致命的局限。如下所示,进程terminal, editor 和network 是在编译时被硬性映像到不同的处理机上。
! D+ A" }, R8 ~0 U( L  hPLACED PAR2 v) M* G7 l, _4 l: u  S9 ~+ P
  PROCESSOR 17 k& I- o& h& h' Y
  terminal (term.in, term.out)/ X, h1 v% c1 [1 b4 F+ Q, k2 \
  PROCESSOR 2
) v( Y8 i) Z, x. J0 _6 h8 P  editor (term.in, term.out, files.in, files.out)' D/ G$ v' b/ A$ U0 W
  PROCESSOR 39 l) q- o' G3 t6 q* W
  network (files.in, files.out)
5 T+ T9 |- A0 M  T$ l* E8 h对于这个局限的极度不满,心中涌出强烈的愿望想要解决这个问题。人生很有意思,9年后,我终于开始解决这个问题,一作就是近十二年。这个问题就是如何应用动态映射处理机,就是作业调度器(Job Scheduler)的灵魂.2 G, `. d% z7 _  R6 a& r
(待续)
" w8 M" l, v* o: B* uVisual Studio 2010 Beta1 中的 MPI Cluster Debugger ! t+ Q; b( N+ Z  }  m0 z8 j
在Windows HPC中写过MPI程序的朋友们应该用过Visual Studio2005/2008中的MPI Cluster Debugger吧。网上也可以搜到不少关于这方面的使用教程(blog, white paper)。在集群中调试MPI程序感觉如何?MPI Cluster Debugger用起来方便吗?Visual Studio 2010 Beta1已经发布,我们HPC组对其中的MPI Cluster Debugger做了很大改进,尽可能地使它变得更加便捷。下面就跟随我一起看看吧! % _4 z, Y! i  b8 X
在同样的地方( 项目属性页面) ,我们找到了MPI Cluster Debugger。不同的是,原先寥寥无几的参数被现在的一群参数所取代。不过不必担心,我保证大家很快上手。其实,在大多数的情况下,只要填写其中的3个参数。对于其他参数,MPI Cluster Debugger会使用默认值。
; W0 G' `) R' a% z& V
1 E& k& N0 \( s2 n1 T! J, D% B$ r既然要在Windows HPC Cluster中调试程序,那么总得指定集群的头节点以及运行MPI程序的计算节点吧。“Run Environment”就是我们的第一个必填参数。点击”Edit Hpc Node…”即可进入”Node Selector”对话框。在此框中,我们可以选择想要使用的集群和计算节点。既可以笼统地指定所需要运行的MPI进程的个数,也可以精确地指定在那几个节点上分别运行多少个MPI进程。在选择节点时,我们还能看到各节点CPU实时负载情况。若仅仅想在本机上调试,运行4个MPI进程,则填入”localhost/4”就可以了。
+ \' q6 n% Y1 X
; B+ {4 b. V5 Y  Q
1 K+ L- z+ s1 g/ h2 T4 m6 a另一个必填参数是“Working Directory”。这是MPI程序运行的目录,必须是一个本地路径。若不存在,MPI Cluster Debugger会帮你创建。“Application Command”是第三个必填参数,通常使用宏“$(TargetFileName)”即可。它指定了需要调试的那个MPI程序。' l# [0 j2 ?8 d1 c/ L
/ R; J1 S, U( ~9 k
“Deployment Directory”参数是可选,默认值是”\\<HeadNode>\CcpSpoolDir\<UserName>”。安装好Windows HPC Cluster后,CcpSpoolDir就会被创建并共享。若不想使用该默认值的话,需要填入一个网络共享路径,并且用户有读写权限。4 r, O* S5 G/ m: ^& v' |
Visual Studio 从2008 SP1开始就有“Debugger Type”参数,于是我们有了选择调试器的自由。通常选择”Native Only”。若你是用MPI .Net写程序的话,那就选择”Managed Only”。. Q9 V7 B1 D+ K: ]% P" |% L4 R
, p, C4 W& l+ A# \% A4 a) M' t
其他参数我就不一一赘述了。每个参数都有解释,相信大家可以看明白。不明白的话,那就回贴问我吧。- F7 Z% P: }2 K6 \1 r
填好以上参数,就可以使用MPI Cluster Debugger的基本功能了。按”F5”,你的程序及相应的pdb文件会被部署到刚才选的那些节点上,然后MPI进程就运行起来了。在”Output View”中,你可以看到MPI Cluster Debugger所做的工作。若有错误发生,在这里可以看到详尽的错误信息,不至于手足无措。在”Processes View”中,你将看到正在运行的MPI进程。4 J( w6 o) _# p4 |& w- M: R

7 e+ x& u5 {4 x ( C6 j) R/ Z2 C  w
以上是对MPI Cluster Debugger的简单介绍。在Visual Studio2010正式发布之前可能还会有一些改动。若大家有什么建议,欢迎回帖。谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

Archiver | 手机版 | 无线门户 ( 粤ICP备11076993号|粤公网安备44010602008359号 ) |网站地图

GMT+8, 2025-11-7 11:56

返回顶部 返回列表