第 1 回先進スーパーコンピューティング環境研究会 (ASE 研究会 ) 発表資料

Similar documents
アルゴリズムの設計と解析. 教授 : 黄潤和 (W4022) SA: 広野史明 (A4/A8)

Omochi rabbit amigurumi pattern

Intermediate Conversation Material #10

研究開発評価に関する国際的な視点や国際動向

Lesson 5 What The Last Supper Tells Us

U N I T. 1. What are Maxine and Debbie talking about? They are talking about. 2. What doesn t Maxine like? She doesn t like. 3. What is a shame?

D80 を使用したオペレーション GSL システム周波数特性 アンプコントローラー設定. Arc 及びLine 設定ラインアレイスピーカーを2 から7 までの傾斜角度に湾曲したアレイセクションで使用する場合 Arcモードを用います Lineモード

Decisions in games Minimax algorithm α-β algorithm Tic-Tac-Toe game

Delivering Business Outcomes

相関語句 ( 定型のようになっている語句 ) の表現 1. A is to B what C is to D. A と B の関係は C と D の関係に等しい Leaves are to the plant what lungs are to the animal.

TED コーパスを使った プレゼンにおける効果的な 英語表現の抽出

特集 米国におけるコンシューマ向けブロードバンド衛星サービスの現状

レーダー流星ヘッドエコー DB 作成グループ (murmhed at nipr.ac.jp) 本規定は レーダー流星ヘッドエコー DB 作成グループの作成した MU レーダー流星ヘッド エコーデータベース ( 以下 本データベース ) の利用方法を定めるものである

Keio University Global Innovator Accelera6on Program 2015 Day 7 Design Process Exercise

Installation Manual WIND TRANSDUCER


L1 Cultures Go Around the World

Chronicle of a Disaster: Understand

車載カメラにおける信号機認識および危険運転イベント検知 Traffic Light Recognition and Detection of Dangerous Driving Events from Surveillance Video of Vehicle Camera

Effects and Problems Coming in Sight Utilizing TRIZ for Problem Solving of Existing Goods

[ 言語情報科学論 A] 統計的言語モデル,N-grams

CER7027B / CER7032B / CER7042B / CER7042BA / CER7052B CER8042B / CER8065B CER1042B / CER1065B CER1242B / CER1257B / CER1277B

The seven pillars of Data Science

Present Status of SMEs I

Final Product/Process Change Notification Document # : FPCN22191XD1 Issue Date: 24 January 2019

科学技術 学術審議会大型プロジェクト作業部会 2015 年 12 月 22 日 永野博

Ⅲ. 研究成果の刊行に関する一覧表 発表者氏名論文タイトル名発表誌名巻号ページ出版年. lgo/kourogi_ pedestrian.p df. xed and Augmen ted Reality

P (o w) P (o s) s = speaker. w = word. Independence bet. phonemes and pitch. Insensitivity to phase differences. phase characteristics

修士 / 博士課程専門課題 Ⅱ 試験問題

The Current State of Digital Healthcare

Omni LED Bulb. Illustration( 实际安装, 설치사례, 設置事例 ) Bulb, Downlight OBB. OBB-i15W OBB-i20W OBB-i25W OBB-i30W OBB-i35W. Omni LED.

Standardization of Data Transfer Format for Scanning Probe Microscopy

Call for a Pro-Innovation

ews 市民社会におけるガバナンスの教育研究拠点 Contents 慶 應 義 塾 大 学 グ ローバル C O E プ ログラム No.6 CGCS ニューズレター 2010.July

GDC2009 ゲーム AI 分野オーバービュー

Private Equity: where should you invest today? P&I Global Pension Symposium, Tokyo

(Osaka Industrial Technology - Platform)

artist Chim Pom Chim Pom (Ryuta Ushiro, Ellie)

Big thank you from Fukushima Friends UK (FF)

HARD LOCK Technical Reports

1XH DC Power Module. User manual ユーザマニュアル. (60V 15A module version) HB-UM-1XH

CPM6018RA Datasheet 定電流モジュール. Constant-current Power Modules. TAMURA CORPORATION Rev.A May, / 15

Title of the body. Citation. Issue Date Conference Paper. Text version author. Right

Creation of Digital Archive of Japanese Products Design process

Multi-Band CMOS Low Noise Amplifiers Utilizing Transformers

宇宙飛行生物学 (Bioastronautics( 宇宙飛行生物学 (Bioastronautics) の大学院教育への利用. Astrobiology)? 宇宙生物学 (Astrobiology( 宇宙生物学 カリキュラム詳細

ジェスチャ併用型 Voice-to-MIDI システムの提案 第五回知識創造支援システムシンポジウム報告書 : 本著作物の著作権は著者に帰属します

Title. Author(s) 樋口, ゆかり. Issue Date Doc URL. Type. Note. Note(URL)

Page No. 原文 リライト EDITOR'S NOTES 1 4 NATURAL ART

次の対話の文章を読んで, あとの各問に答えなさい ( * 印の付いている単語 語句には, 本文のあとに 注 がある )

Season 15: GRAND FINAL PLAYER GUIDE. ver.2019/1/10

Toward The Organisational Innovation Study: A Critical Study of Previous Innovation Research

F01P S05L, F02P S05L, F03P S05L SERIES

SanjigenJiten : Game System for Acquiring New Languages Visually 三次元辞典 : 第二言語学習のためのゲームシステム. Robert Howland Emily Olmstead Junichi Hoshino

超小型 Very small (L:3.2 W:1.5 t:0.4mm) 高利得 High gain 無指向性 Omini-directional. < 用途 Applications> PHS 機器 DECT 機器 その他 PHS & DECT systems, etc ST01

国際会議 ACM CHI ( ) HCI で生まれた研究例 2012/10/3 人とコンピュータの相互作用 WHAT IS HCI? (Human-Computer Interaction (HCI)

Indonesian Printing Industry Trends, Current Technology, and Future Development

Gary McLeod is a Tokyo-based teacher of English and

Establishing an international cooperative strategy for the conservation of Oriental White Storks in Northeast Asia

磁気比例式 / 小型高速応答単電源 3.3V Magnetic Proportion System / Compact size and High-speed response. Vcc = +3.3V LA02P Series

How Capturing the Movement of Ions can Contribute to Brain Science and Improve Disease Diagnosis

Title inside of Narrow Hole by Needle-Typ. Issue Date Journal Article. Text version author.

Specifications characterize the warranted performance of the instrument under the stated operating conditions.

博士学位論文. Doctoral Thesis 内容の要旨 審査結果の要旨. Thesis Abstracts and Summaries of the Thesis Review Results. The Twelfth Issue. The University of Aizu

Study on Multipath Propagation Modeling and Characterization in Advanced MIMO Communication Systems. Yi Wang

Infineon 24GHz Radar Solution. May 2017 PMM RSF DM PMM Business development

Simple Utility-Interactive Photovoltaic Power Conditioners Installed in Veranda of Apartment Houses

Ansible 紹介 R&Dセンター OSS 戦略企画室 OSS 技術第二課角馬文彦 本文中の会社名 商品名は 各社の商標及び登録商標です

Immersive and Non-Immersive VR Environments: A Preliminary EEG Investigation 没入型および非没入型 VR 環境 :EEG の比較. Herchel Thaddeus Machacon.

超伝導加速空洞のコストダウン. T. Saeki (KEK) 24July ILC 夏の合宿一ノ関厳美温泉

Local Populations Facing Long- Term Consequences of Nuclear Accidents: Lessons learned from Chernobyl and Fukushima

Finding Near Optimal Solutions for Complex Real-world Problems

Future Perspectives of Science, Technology and Innovation

4. Contact arrangement 回路形式 1 poles 1 throws 1 回路 1 接点 (Details of contact arrangement are given in the assembly drawings 回路の詳細は製品図による )

TDK-Lambda A C 1/27

品名 :SCM1561M 製品仕様書. LF No RoHS 指令対応 RoHS Directive Compliance 発行年月日 仕様書番号 SSJ SANKEN ELECTRIC CO., LTD. 承認審査作成 サンケン電気株式会社技術本部 MCD 事業部

りれきしょ. What to do before writing. Advice on writing your Entry Sheet Content. Entry Sheets and rirekisho. III. To Succeed in the Screening Process

(2) 日本 インドネシア 2 国間ワークショップ インドネシアにおける生物遺伝資源とその取扱い

2018 年 3 月期決算説明会 筒井公久. Presentation on Business Results of FY 3/2018 (April 1, 2017 to March 31, 2018)

Minecraft You Need To Run The Version Manually At Least Once

The Bright Side of Urban Shrinkage: Steps toward Restructuring Cities

Keio EDGE Program. Kane Ishibashi Project Assistant Professor, Graduate School of System Design and Management

ITU-R WP5D 第 9 回会合報告書

[1] 大橋和也, 森拓哉, 古関隆章 運転整理時における乗車率に応じた旅客行動の変化のモデル化 電気学会論文誌 D,J-Rail 2013 特集,2015,pp

Magellan Systems Japan, Inc.

日独学長シンポジウムと日仏高等教育改革シンポジウムが開催されました.

XG PARAMETER CHANGE TABLE

On Endings 終結について. Ted Goossen

TDK Lambda A /9

Supporting Communications in Global Networks. Kevin Duh & 歐陽靖民

無線通信デバイスの技術動向 松澤昭 東京工業大学大学院理工学研究科電子物理工学専攻 TiTech A. Matsuzawa 1

IMPORTANT SAFETY INSTRUCTIONS Regulatory Safety Information

PH75A280-* RELIABILITY DATA 信頼性データ

ガレリアリブロ / GaleriaLIBRO Art Project/Art Book/Art Magazine. 洋才書魂 No 年 11 月 スペイン現代美術 アントニ タピエス

Effective Utilization of Patent Information in Japanese global companies

Hacked ace gangster. City Hacked. Key hacks [3] Money [4] Health [5] Exp [6] Ammo for all weapons [7] Attribute points [8] Skill

Studies on Modulation Classification in Cognitive Radios using Machine Learning

Instruction Manual. Model IB100 Interface Box. IM 12B06J09-01E-E 2nd edition. IM 12B06J09-01E-E_ed02.indd 1 01/12/16 15:52

Development of a pixel sensor based on SOI technology for the ILC vertex detector

Sales are increasing every year!

Transcription:

第 1 回先進スーパーコンピューティング環境研究会 (ASE 研究会 ) 発表資料 ASE 研究会幹事特任准教授片桐孝洋 2008 年 3 月 3 日 ( 月 )13 時から 14 時 30 分まで 米国ローレンス バークレー国立研究所の Osni Marques 博士をお招きして 第 1 回先進スーパーコンピューティング環境研究会 (ASE 研究会 ) が開催されました 本号では Marques 博士が発表した内容を資料としてまとめていただき 掲載させていただきます ( 当日の配布資料は スーパーコンピューティングニュース Vol.10,No.2,pp.20-40 に掲載済み ) Marques 博士の講演は An Overview of the ACTS Collection Project と題される発表でした ACTS Collection Project とは 米国エネルギー省 (US Department of Energy, DOE) が資金を提供し 米国のスーパーコンピュータ上で利用できる計算科学アプリケーションの開発 保守 および移植の際の負荷を軽減する 先進的な計算科学ソフトウエア (Advanced CompuTational Software ACTS) 群に関するプロジェクトです ACTS 群は DOE で開発したソフトウエアに限らず 他のファンドで開発されたソフトウエアとも連携して構成されており 計算科学アプリケーション開発時における高性能コード作成を容易にすることが目的です 日本では ソフトウエア開発自体に競争的資金は出しても 保守管理を目的に資金を出すことはほとんどありません ACTS のような保守管理も目的にしているプロジェクトは 米国でも稀であるようです いずれにせよ 当センターのようなスーパーコンピュータ提供機関にとって スーパーコンピュータの利用を容易にするソフトウエアの開発のみならず 有益なソフトウエアの保守管理はきわめて重要な業務であり 米国の先例として大変参考になる講演でした 具体的に ACTS プロジェクトでは 著名な数値計算ライブラリ ScaLAPACK PETSc および SuperLU などの提供だけを目的にしているのではなく TAU(Tuning Analysis Utilities) のような性能解析ツールや 利用に関してノウハウの塊である数値計算ライブラリにおいて適するライブラリや適する性能パラメタを推薦したりするツールの研究開発を行っています また 長期保守管理サービス テストと評価環境サービス アウトリーチと普及サービス 高度なユーザサポートサービスを指向して ACTS ツール群を活用するサービス指針 ACTS Center が示されています このようなサービス指針は ユーザを京速コンピューティングへと導くために日本のスーパーコンピュータ提供機関においても参考とすべきサービス指針といえるでしょう ASE 研究会では ACTS プロジェクトのように先進的なスーパーコンピューティング環境を実現するための話題提供を目的に 年数回の活動を計画しております これからもご支援のほどを よろしくお願い申し上げます

An Overview of the ACTS Collection Project Osni Marques Lawrence Berkeley National Laboratory 1 Cyclotron Road, MS 50F-1650 Berkeley, CA 94720-8139 Abstract The development of high performance application codes is an expensive process that often requires specialized support about the available computational resources and also the software tools that allow for an efficient use of those resources. Usually, the development effort is increased by the complexity of the phenomena that can be addressed by numerical simulations, along with the increase of computing resources and evolution of computer architectures. In this article we present an overview of the activities and mechanisms implemented by the US Department of Energy (DOE) Advanced Computational Software (ACTS) Collection Project that aim at mitigating the effort required for the development, maintenance and portability of computational science applications. The ACTS Collection comprises a set of DOE-developed software tools, sometimes in collaboration with other funding agencies, and that make it easier to write high performance codes for computational science applications. The ACTS Project implements additional services to guarantee the availability of the tools and also to enable their adequate utilization. This article summarizes the functionalities that the tools provide, applications that have benefited from their use, services provided by the project, and lessons learned through interactions with users that possess different levels of expertise. 1. Introduction Traditionally, the models adopted by engineers and domain scientists for the development of simulation codes have ranged from fully in-house implementations to sophisticated computational environments, including calls to functionalities available in different libraries, with well-defined interfaces. The former approach usually leads to duplication of efforts, to software that may not perform satisfactorily (computationally and algorithmically), to software that may not even be portable, to a confinement of the know-how when the development is carried out by temporary personnel, and to monolithic codes that prevent users from extracting subsets of the implemented functionalities. In contrast, the latter approach allows for efficient software reuse and separation of application development concerns, and access to a much larger range of functionalities implemented in libraries possibly written in different or specialized languages, swapping between alternative (newer and/or faster) algorithmic implementations. Also, it makes it easier to incorporate new functionalities into the application codes and the adoption of emerging technologies for automatic tuning. Equally important, it frees application developers to focus on their specific areas of interest, and make. Application developers can resort to combinations of compiler directives, language extensions, non portable library calls and even code rewrites to optimize the performance of their applications. Overall, this part of the application development is operationally very expensive and with very short term impact on the application. The cost of optimizing an application renders this kind of development almost impractical for current and future computational challenges, in particular when this cost is added to the costs of the initial development, debugging, synchronization of source code and consecutive version upgrades. As an alternative to this, high quality scientific This article is based on a presentation given at the Information Technology Center (ITC) of the University of Tokyo on March 3, 2008, as part of the author s two-month visit to various institutions in Japan. The writer is greatly indebted to his host at ITC, Prof. Takahiro Katagiri, and also to the Japan Society for the Progress of Science, which made the visit to Japan possible. 1

software libraries have been increasingly used in high-end simulation codes. This practice can successfully address issues pertaining to: a) research in computational sciences is fundamentally interdisciplinary; b) the development of complex simulation codes on high-end computers is not a trivial task; c) productivity, i.e. the time required to produce the first solution (prototype phase) to runs with realistic models (production phase); d) increasingly sophisticated models and fidelity of the models; and e) increasingly complex algorithms and computer architectures. The US Department of Energy (DOE) Advanced Computational Software (ACTS) Collection comprises a set of computational software tools that aim at simplifying the solution of common and important computational problems [1][2]. ACTS tools are freely available 1 and targeted for distributed (MPI-based) computing; some of the tools also provide implementations for sequential architectures. The collection evolved from the former DOE 2000 Project, which had two main components, the Advanced Computational Testing and Simulation Toolkit and the National Collaboratory Project. One of the goals of the project was to change the way scientists work together and address major challenges of scientific computation by developing and exploring new computational tools and libraries. Therefore, most of the tools currently available in the ACTS Collection were primarily developed at DOE laboratories, in some cases in collaboration with universities. In addition, some tools have been co-funded by DOE and other agencies like the US National Science Foundation (NSF) and the US Defense Advanced Research Projects Agency (DARPA). The development of some of the tools required a long-term investment and effort, therefore the role played by DOE laboratories. Although some of the tools initially focused on problems of interest of DOE, they soon evolved and enabled the solution of a much larger variety of applications. The ACTS Project complements the library research and development efforts by adding technical support, quality assurance and outreach. The technical support provided by the ACTS Project ensures that development efforts are better employed. As a result of this effort, ACTS libraries have reached higher acceptance levels among computational scientists and institutions. In turn, this outreach provides the necessary means for individual tool projects to interact with more users. As a result, the tools can gradually mature, becoming both more robust and portable to state-of-the-art high performance computing environments. In this overview article, we discuss our experience with the ACTS Collection Project towards the creation of a reliable software infrastructure for computational science computations. The article deals with various aspects of the ACTS tools, in particular categories of problems that they solve, functionalities that they provide, applications that have benefited from their use, lessons that we have learned by interacting with computer vendors and users with different levels of expertise, and mechanisms to minimize the usually costly application development effort. 2. ACTS: Functionalities Currently Available Software libraries in the ACTS Collection fall in one of four (broad) categories: numerical tools, tools for code development, tools for code execution and tools for library development. The numerical tools implement numerical methods and algorithms, and include sparse linear system solvers, ODE solvers, optimization solvers, etc. The tools in the code development category provide infrastructure that manages some of the complexity of distributed programming (such as distributing arrays, communicating boundary information, etc) but do not actually implement numerical methods. Execution support is a category for application-level tools; which include tools for performance analysis. Library support tools provide an infrastructure for tool developers and probably will not be used or seen directly in scientific applications. The tools are selected, considered for inclusion and evaluated by taking into account efficiency, scalability, reliability, portability, flexibility, and ease-of-use [3]. Efficiency refers to the optimal use of computational resources in the system. Scalability is the ability to increase the number of processes and processors as the size and complexity of the problem being solved is also increased without compromising efficiency. Reliability refers to the failure free features of the library and proper handling 1 Pointers and more information on how to download the tools can be found at the ACTS Information Center, http://acts.nersc.gov. 2

Table 1. Set of tools that form the solid base of the ACTS Collection, i.e. the tools that have been installed (based on users requests) and used on DOE s computer facilities. Tool ATLAS Aztec Hypre Global Arrays OPT++ PETSc SUNDIALS ScaLAPACK SLEPc SuperLU TAO TAU Functionalities Automatic tuning of basic linear algebra subroutines. Developed at the University of Tennessee, Knoxville Algorithms (based on Krylov subspaces) for the iterative solution of large sparse linear systems. Developed at Sandia National Laboratories. Algorithms (based on Krylov subspaces) for the iterative solution of large sparse linear systems, intuitive grid-centric interfaces, and dynamic configuration of parameters. Developed at Lawrence Livermore National Laboratory. Library for writing parallel programs that use large arrays distributed across processing nodes; shared-memory programming interface for distributed-memory computers. Developed at Pacific Northwest National Laboratory. Object-oriented package of nonlinear optimization algorithms. Developed at Sandia National Laboratories. Tools for the solution of PDE problems that require solving large-scale, sparse linear and nonlinear systems of equations. Developed at Argonne National Laboratory. Solvers for large systems of ordinary differential equations, nonlinear algebraic equations, differential-algebraic equations, and sensitivity analysis. Developed at Lawrence Livermore National Laboratory. Library of high performance dense linear algebra routines for distributed-memory architectures. Developed at the University of Tennessee, Knoxville, and UC Berkeley. Software package built on top of PETSc for the solution of large sparse eigenvalue problems. Developed at the Universidad Politecnica de Valencia, Spain. General-purpose library for the direct solution of large, sparse, systems of linear equations. Developed at UC Berkeley and Lawrence Berkeley National Laboratory. Tools for the solution of large-scale optimization problems, including nonlinear least squares, unconstrained minimization, bound constrained optimization, and general nonlinear optimization. Developed at Argonne National Laboratory. Tools for analyzing the performance of programs written in C, C++, Fortran or Java. Developed at the University of Oregon and Los Alamos National Laboratory. of error bounds. Portability refers to the almost adaptability of the libraries to a wide variety of computational environments. Flexibility is the feature that allows users to construct new routines, libraries and codes from welldefined tool modules. The use of flexible software automatically leads to extensible software. Ease-of-use delivers interfaces that users outside the community of developers can adopt and become familiar with. All these considerations make ACTS tools an important resource for a wide spectrum of applications. Table 1 summarizes the functionalities of the tools that currently form the core of the ACTS Collection, i.e., the tools that we have installed and supported at DOE s National Energy Research Scientific Computing Center (NERSC). Other computer facilities also provide installation of the tools, including DOE s National Center for Computation Sciences (NCCS), the San Diego Supercomputing Center (SDSC), the Pittsburgh Supercomputing Center (PSC), the National Center for Supercomputing Applications (NCSA), and Virginia Tech. Although this list is not comprehensive, it gives a taste of the range of solutions provided by the tools. Also, it suggests that the tools have been used in different scenarios, for example for code development, prototyping, and large simulations that have the potential to lead to scientific breakthroughs. To a large extent, the tools in Table 1 reflect the state- 3

of-the-art software and hardware technologies. More information about the functionalities that they provide can be found in [1][2]. We note that the collection itself is not static: tools need to be retired (for example when development has ceased or porting to new computing scenarios is no longer possible), or replaced by new technologies. Examples of Use In the last several years, a number of important scientific and engineering problems have been successfully studied and solved by means of computational modeling and simulation [4]. Many of these computational models and simulations benefited from the use of available software tools and libraries to achieve high performance, in particular tools listed in Table 1. These tools have facilitated code portability across many computational platforms while guaranteeing the robustness and correctness of the algorithmic implementations. To illustrate, here we give a short list of applications that show how ACTS tools have been used: Aztec: solution of systems of linear-equations in for multi-phase fluid and heat flow in porous and fractured media (TOUGH2 code). Global Arrays: data distribution in molecular dynamics codes (including NWChem, GAMESS-UK, Columbus, Molpro and Molcas). OPT++: protein energy minimization problems. PETSc: model of the heart mechanics (blood-muscle-valve) by an adaptive and parallel version of the immersed boundary method, micro-finite element bone modeling, magma dynamics using a semi-lagrangian advection schemes. ScaLAPACK: solution of linear systems in spectral algorithms for the study of electromagnetic wave-plasma interactions; solution of eigenvalue problems in electronic structure calculations; solution of linear systems in astrophysics. SLEPc: equilibrium and stability of Tokamak plasmas, analyses of electronic and optoelectronic devices, Hessian-based model reduction. SuperLU: parallel exact shift-invert eigensolver based on PARPACK for the modeling and analysis of accelerator cavities; computation of preconditioners for the solution of linear systems in quantum mechanics problems. SUNDIALS: uncertainty quantification for groundwater simulation, sensitivity analysis in a population dynamics model, sensitivity analysis in neutral particle transport simulation. TAO: electronic structure optimization, linguistic processing, subsurface remediation problems, finite element micromagnetics simulations. Even if an application does not require numerical functionalities like the ones provided by the tools listed in Table 1, application developers are often faced with questions related to computational performance, including 2 : a) significant performance variability when using different compilers, b) performance variability possibly related to operating system features, c) performance changes caused by recent changes in application code, d) performance variability under MPI variants, e) one version of the application is faster than another, f) similar runs exhibit different performances, and f) the architecture that is best suited for an application. TAU (see Table 1) is a tool that can be employed in the understanding of all these issues. TAU provides capabilities for profiling (recording of summary information during execution such as inclusive and exclusive time, number of calls, hardware statistics, etc) and tracing (recording of information about significant points, i.e. events, during program execution, such as function, loops, blocks, thread/process interactions, etc). It can be used for multi-level performance instrumentation, multi-language source instrumentation, multiple parallel programming paradigms, and object- 2 Adapted from Sameer Shende s presentation, http://acts.nersc.gov/events/workshop2005/slides/shende.pdf. 4

Figure 1. Snapshots of PARAPROF, a performance data visualizer provided with TAU. The pictures show performance data for PESCAN, a code that uses the folded spectrum method for non self-consistent nanoscale calculations of materials. It is parallelized using MPI and can calculate million atom systems. For illustration purposes, the performance data was collected on 8 processors on an IBM SP5; the data was later analyzed on a PC desktop. oriented and generic programming. In summary, TAU provides a variety of services for instrumentation and tuning, while requiring a minimum effort for code instrumentation. In fact, all instrumentation can be done automatically, by means of easy-to-use scripts provided with the package. The visualization and analysis of the performance results can also be done by means of tools included with the package. In Figure 1 we show snapshots of the performance data visualization capabilities included in TAU. 3. ACTS: Added Services The ACTS Project is actively engaged in education activities, by organizing and participating in workshops, tutorials and other events related to computational sciences. The goal is to promote the reuse of robust software tools and at the same time provide guidance on their use. Starting in 1999, the ACTS Project has been hosting a yearly workshop at the Lawrence Berkeley National Laboratory, with DOE funds. The workshop consists of presentations, tutorials and hands-on sessions. Participants are chosen based on an application process, which aims at identifying and matching applications and computational needs. During the hands-on sessions, the participants have the opportunity to compile and run examples that show how ACTS tools can be used. This provides a unique opportunity for students to be become acquainted with tools intended for high end computer simulations. 5

The following is a list of recent events organized or co-organized by the ACTS Project: An outlook on Scientific Software Libraries and Writing Scientific Software: Experience with Using, Developing and Teaching, ICIAM2007 Conference, Zurich, Switzerland, 2007. Workshop and Advanced School on Eigenvalue Problems, Software and Applications, Porto, Portugal, 2007. Tools, Frameworks and Applications for High Performance Computing, minisymposium, PARA 06 Workshop, Umeå, Sweden, 2006. Tutorial on Robust and High Performance Software Libraries for Computational Sciences, VECPAR 06, Rio de Janeiro, Brazil. ACTS Collection Workshop at SDSC, San Diego, CA, 2006. Short Course on the ACTS Collection, SIAM CSE05 Conference, Orlando, FL. In addition to training and outreach activities, the ACTS Project also investigates requirements for reusable high quality software tools, mechanisms for integration, maintenance and support, interfaces using script languages, and software automation strategies. 4. ACTS: Lessons Learned Important lessons have emerged from the activities carried out by the ACTS Project. While some of the lessons are perhaps specific to DOE communities, they are nonetheless valuable to the computational science and engineering communities as a whole, and in particular to the software development and support projects: There is still a gap between tool developers and application developers that leads to duplication of efforts. Without projects like ACTS, application developers will continue to design and implement codes using techniques that are already available from other sources. Quite often these in-house implementations are not optimal because of the application developers inexperience with all the different issues that lead to optimal performance. Users demand long-term support of the tools. One of the main concerns that users have expressed is the longevity of support from tool developers and required evolution of the software as the hardware technology continues to evolve and the complexity of the application continues to grow. Applications and users play an important role in hardening tools. The main parameters for software maturity are portability, robustness, acceptance, and long-term support. It is particularly the interactions with real users and real applications that have made the software mature, portable, robust and better documented. In turn, mature software will be widely accepted inside a given scientific community. Tools evolve or are superseded by other tools. As technology continues to advance, there are some tool functionalities that are either no longer needed or are improved as direct consequences of users requirements. There is a demand for tool interoperability and more uniformity in the documentation and user interfaces. Users want to experiment with functionalities available in a subset of tools. Finding similar user interfaces and comparable levels of support and documentation makes this task even simpler and riskless. The computational challenges at hand also demand new software developments that interact with legacy code practices, data and computer languages. 5. ACTS: The Present and the Future The ACTS Collection Project has been serving as a mechanism for the development, support, and promotion of quality high performance software tools. The goals and successes of the project have been enhanced by the increasing demand for complex high performing computer simulations, closer interactions between computer scientists and other domain scientists, less duplication of efforts, and interoperability to pick-and-play with 6

kernels from a variety of computational services. We have been working to continuously expand the scope of the ACTS Collection Project based on the lessons that we have learned. The evolution of the ACTS Project towards a reliable software infrastructure for scientific computing takes into consideration the following items: A Solid Base for the ACTS Collection. The mature tools in the ACTS Collection form a solid base that has contributed to the acceptance of the tools in computation sciences. We have defined mechanisms for the inclusion of new tools in the collection and a process that certifies the tools as part of the collection. ACTS High Quality Software Certification. We have created a software certification process for tools in the collection and that is defined in terms of software availability, robustness, functionality, portability, documentation, and interoperability. Inclusion of New Solutions to Computational Problem. The development of good quality complex parallel codes is usually very expensive. The ACTS Collection aims at promoting code reusability for the solution of common and important computational problems as a means of accelerating scientific discoveries. It also aims at fostering the development of tools that are not available and recommends good quality tools developed by parties not necessarily funded by DOE. Interoperability and Software Distribution. Interoperability may affect performance in some cases but it potentially reduces time to solution and, most important, it assures longevity of the software. Moreover, language choices made by the tool developers must not dictate the choice of language used by the application developers. Encourage Feedback from Users. The ultimate measure of success for the high performance computing tools provided by ACTS is their role in the production of high quality scientific results. This can be assessed, for instance, by encouraging feedback from current and potential users as well from participants in the workshops and other activities related to ACTS, and by giving presentations and fomenting discussions in major events covering computational sciences topics. Expertise Tracking. The ACTS Information Center attempts to collect and make available all information from tool developers, acts-support and users experiences with the tools. In some cases, tool developers keep their own e-mail lists of users, by means of which questions and problems are posed and later either the developers or other experienced users propose answers and solutions. We have been expanding this capability in the ACTS Information Center by continuing to participate in these e-mail lists and looking into ways to employ more specialized search tools to retrieve this information from feedback, evaluations, and reports collected on a particular tool. The key component of this long-term user support is the coordination of efforts between software and hardware vendors, tool developers, users and ACTS. We have realized that the main parameters for software maturity are portability, robustness, acceptance, and long-term support. And it is in turn the interactions between application and tool developers that have made the software tools more mature, portable, robust and better documented. Therefore, we have been working with commercial software developers and computer vendors to guarantee the long-term support for the tools and to effectively reach out more user communities. To complement the above activities, and among others, we have also implemented a quarterly electronic newsletter, worked on tentative collaboration agendas with various research centers and computer facilities, collaborated with tool developers towards the publication of special issue of journal featuring ACTS tools, responded to requests for ideas on how to efficiently deploy future high-end computing technologies, and worked on the development of a Python Interface to the numerical libraries in the ACTS Collection. In the ACTS Collection Project our efforts have been characterized by an intense outreach and dissemination of the tools, and high-level user support to application developers while writing their codes and selecting functionalities available in the collection. We aim at expanding these efforts with new services to enable the longterm availability, performance and readiness of the tools. In these lines, we have been working on the creation of a center for the sustainable maintenance and support of a collection of software tools, the ACTS Collection. Figure 2 presents the scope of the ACTS Center and its formulated set of services. We group these services in four main 7

Figure 2. Schematic of the proposed ACTS Center and its set of services. areas: long-term maintenance, independent testing and evaluation, outreach and dissemination and high-level user support. We goal is to provide a distributed implementation of the ACTS Center across the DOE leadership and flagship computing facilities by building a strategically planned infrastructure to support our collaborations with these facilities. 6. CONCLUSIONS This article has summarized needs of the computational science community at large, where significant efforts are focused on the development of complex parallel codes and their optimization. This expensive process often requires specialized support and information about software tools, and becomes crucial if we consider that more complex physical and societal phenomena, along with the growth of computing resources, is driving the continuous growth of the gallery of computational sciences applications. We foresee a great need not only for state-of-the-art software, but also a collaborating infrastructure in which knowledge and expertise is captured and shared. A high-end software infrastructure can produce substantial performance information from interactions between algorithm, tool and application developers. In general, a wide range of scientific code developers and users benefit from a) information and education about state-of-the-art, high-end computational tools; b) the development and promotion of robust, effective, portable, usable, and durable software; c) the increased interoperability of tools, which promotes the evolution and adoption of current software development projects into future software technologies; d) multidisciplinary collaborations and the consequent accumulation of expertise; and e) spending less time on code development and having more time to devote directly to scientific discovery. 8

As discussed in Section 4, users demand long-term support of the tools, which implies not only bug fixes, but also addition of new features, porting and documentation updating. Ideally, the tool developers should be in charge of these activities. It turns out that this model raises important issues about funding opportunities, since software maintenance has not been properly addressed in the various funding agencies agendas. Nonetheless, the ACTS Project implements a viable solution to bring all these efforts to the computational science community while exploring mechanisms for extending the longevity of the software beyond their development phase. Therefore, projects like ACTS are important for maintaining a high quality software collection by not only attesting the quality of tools but also ensuring that users select the more suitable tools and tool functionalities, and make proper use of these. In terms of the various types of users, here we borrow Prof. Nakajima s broad ranking of users: A-rank: can develop parallel codes by themselves from scratch (using ScaLAPACK, Aztec, PETSc, etc). B-rank: can develop codes by themselves using more sophisticated frameworks (like HPC-MW, GeoFEM, etc). C-rank: users of parallel codes (STAR-CD, GAUSSIAN,etc). S-rank: A-rank + can make contribution on HPC-MW. We believe that a project like ACTS is important for maintaining a high quality software collection by not only attesting the quality of tools but also ensuring that users in particular the A and B groups listed in the above ranking select the more suitable tools and tool functionalities, and make proper use of these. If terms of productivity, we borrow a metric from [5] U ( T ) ψ = Cs + Co + Cm where Ψ is the overall system productivity, U(T) is the utility of the solution (a function of time, the longer the time to solution, the lower the utility of that solution will be), C S is the cost of software, C O is the cost of operator, and C M is the cost of the machine. Readily available, robust and high-performing software tools can contribute to reducing the time to solution and the cost of the application development, therefore leading to a better system productivity. Acknowledgments The author would like to express his gratitude to all ACTS tools developers for their feedback over the years, as well as to Prof. Kengo Nakajima for stimulating discussions on software tools. For more information about the ACTS Project the reader is invited to visit http://acts.nersc.gov or send an e-mail to acts-support@nersc.gov. 7. References [1] T. Drummond and O. Marques, The Advanced CompuTational Software (ACTS) Collection, ACM TOMS, 31:282-301, 2005. [2] The International Journal of High Performance Computing Applications, Special Issue on ACTS Tools in the ACTS Collection, Vol. 20, 2006. [3] T. Drummond and O. Marques, The ACTS Collection, Robust and High-Performance Tools for Scientific Computing: Guidelines for Tool Inclusion and Retirement, Technical Report LBNL-PUB-3175, November 2002. 9

[4] T. Drummond, O. Marques, J. Roman and V. Vidal. A Study of Robust Scientific Libraries For The Advancement of Sciences and Engineering, Lecture Notes in Computer Science, Vol. 3402, Springer-Verlag, Berlin, 2005. VECPAR 2004, Valencia, Spain, June 28-30, 2004, revised selected and invited papers. [5] A. Funk, MIT.V. Basili,.L. Hochstein.J. Kepner, Analysis of Parallel Software Development using the Relative Development Time Productivity Metric, CTWatch, November 2006 A. 10