科学论文2--Thoughts on high-performance computing的阅读与实践

来源:互联网 发布:怎么做淘宝宝贝详情页 编辑:程序博客网 时间:2024/05/07 18:35

论文发表在 National Science Review,2014,Vol.1,No.3。中国科学评论2014年第1卷第3期。此论文是英语论文。

第一部分 英语论文阅读

1.高性能计算概述

1.1并行计算的三个阶段three  phases

 moderate parallelism described by Amdahl’s law ,                      由Amdahl定律描述适度并行

 large-scale parallelism described by Gustafson’s law ,                由由古斯塔夫森定律描述大规模并行

and high-productivity parallelism described by the productivity evaluation model。   生产力评价模型描述的高效能并行

1.2 目前面临的问题

 In April 2010, IBM Inc. in their report ‘Some Challenges on Road from Peta scale to Exa scale’ presented five challenges in an exascale system;

                         从千兆peta 到exa 千兆兆的五个挑战

these stem from power consumption,memory access, communication, reliability, and programming , respectively referred to as the energy wall,memory wall,communication wall,reliability wall,and programming wall.

                   这些挑战产生的原因是CPU耗能、存储器访问、处理器的数据通信、可靠性和高性能计算程序编程,分别被称为能源墙,存储器墙,通信墙,可靠性墙和编程墙。

细节:

              reliability based on fault-tolerant overhead  可靠性依靠容错开销

2.beakthrough 突破性新发展

             breakthroughs in both the architecture and enabling technologies  高性能计算体系和可能技术的突破性进展

2.1 高性能计算体系新进展

 (1) a design that balances computing with communication and memory access, coordinates the application, software, and hardware, and integrates the computer system and execution environment;

通信和存储器访问的平衡计算设计,根据应用、软件硬件的协同,集成计算机硬件系统、操作系统和运行时系统为一体化系统机制。

(2) a chip architecture that integrates a general process or as well as a specific processor;

    芯片级体系集成通用处理器和专用处理器,比如GPU。

(3)a support framework for applications;

      应用的支撑框架,譬如对不同的应用有不同的程序框架

(4)state-of-the-art cooling technology,such as the ICEOTOPE Corp.cooling  product;

           最先进的冷却技术,例如ICEOTOPE公司的产品

(5)a system-on chip architecture based on neural networks;

         神经网络片上系统

(6)a new programming language together with its compiler;

     新的高性能计算编程语言,并且有独立的编译器

(7)large-scale parallel algorithms that can be scaled up to tens of thousands or even millions of nodes;

     大型并行程序的算法,能在成百上千甚至百万个节点上应用部署

(8) a domain-oriented support environment  for high-performance computing;

     高性能计算面向领域的支撑系统环境

(9) a support environment for the design and execution of parallel programs at the instruction, thread, multicore,and multi-node levels;

          指令级、线程、多核心与多节点级的并行程序设计与执行的支撑环境

(10)the optimization of memory access at the architecture, operating system, compiler, and algorithm levels;

            存储器访问在体系结构、操作系统、编译器和算法上的优化

(11) power optimization at the chip, architecture, operating system, and compiler levels;

        使用能量优化在芯片、体系结构、操作系统和编译器级别

(12) fault tolerance technology integrated both the software and hardware;and

                     软件和硬件集成的容错技术

(13)service oriented cloud computing,amongst others.

               面向云计算的服务

2.2 可能技术的新进展

With respect to the enabling technology, with the rapid development of nanomaterial, quantum computing, and bioinformatics,we focus on

   谈到可能的技术,譬如纳米材料,量子计算和生物信息学的迅速发展,我们关注

(1)quantum walk Bosonsampling,

          量子游走的玻色子采样

(2)programmable nanometer circuits,

         可编程纳米电路          

(3) memristors,

          忆阻器

(4) holographic optical storage,

          全息光存储

(5) on-chip optical interconnects,

           芯片上光互联 

(6) system-wide optical inter connects,and soon on

               全系统的光互联                

第二部分   高性能计算编程的实践

1. R语言并行程序设计

将tm软件包的数据集的50个文档赋值100,000次,得到包含500万个文档的资料库,查找正则表达式。

1.1 tm软件包

tm软件包是R语言中为文本挖掘提供处理的package,提供数据导入、语料库处理、预处理、元数据管理、创建term-document矩阵等功能。

1.2 企业并购示例数据集Rcuters-21578的并行计算

> library(tm)   
> data("acq")   #数据集acq
> textdata=rep(sapply(content(acq),content),1e5) 

                  #将数据集的50个文档赋值100,000次,得到包含500万个文档的资料库
   #并行计算

> library(parallel)   #并行计算软件包
> detectCores()    #检测计算机的CPU核的数量
> cl=makeCluster(detectCores())   #设置一个工作集群

> part=clusterSplit(cl,seq_along(textdata))

>text.partitioned=lapply(part,function(p) textdata[p])

>pattern="\\\\d+(,\\\\d+)? mln dlrs"                                #正则表达式在文档中查找

> system.time(res2=unlist(
+ parSapply(cl,text.partitioned,grepl,pattern=pattern)
+ ))
>stopCluster(cl)          #结束一个工作集群

Hadoop集群的设置是困难的,然而R语言用一个函数就实现了。说明符合高性能计算进展的软件和硬件集成与协同发展方向。


2.并发程序树型结构图




0 0