Ian Foster. Argonne, IL Fortran M is a small set of extensions to Fortran 77 that supports a

Size: px
Start display at page:

Download "Ian Foster. Argonne, IL Fortran M is a small set of extensions to Fortran 77 that supports a"

Transcription

1 FORTRAN M AS A LANGUAGE FOR BUILDING EARTH SYSTEM MODELS Ian Foster Mathematics and omputer Science Division Argonne National Laboratory Argonne, IL Introduction Fortran M is a small set of extensions to Fortran 77 that supports a modular or object-oriented approach to the development of parallel programs (Foster and handy, 1992). In this paper, I discuss the use of Fortran M as a tool for building earth system models on massively parallel computers. I hypothesize that the use of Fortran M has software engineering advantages and outline experiments that we are conducting to investigate this hypothesis. 2. Earth System Models An earth system model is a computer code designed to simulate the interrelated processes that determine the earth's weather and climate, such as atmospheric circulation, atmospheric physics, atmospheric chemistry, oceanic circulation, and biosphere. A scientist might use a diagram similar to Figure 1 to explain an earth system model. In this gure, boxes represent processes and arrows represent linkages between processes. This description is easy to follow. It hides unnecessary detail and makes the interfaces between components clear. These desirable characteristics, which have obvious value to the scientist, are also of value to the software engineer. In fact, they constitute the central attributes of modular or object-oriented design. Unfortunately, this natural modularity is normally lost when an earth system model is implemented as a computer program. On massively parallel computers, extensive reengineering can be required to combine component models or to experiment with alternative mappings of computation to processors. The result is that it is dicult both to implement these models and This research was supported by the Atmospheric and limate Research Division of the Oce of Energy Research, U.S. Department of Energy, under ontract W Eng-38.

2 to adapt them to changing requirements. T q? T T T q s T surf q Figure 1: Simplied schematic description of an earth system model. Boxes represent component models and arrows represent data transfers between components. 3. Fortran M Fortran M is a small set of extensions to Fortran 77 that supports a modular or object-oriented approach to the design of message-passing parallel programs. The following features of this language appear useful when developing earth system models. Modularity. Programs are constructed by using explicitly-declared communication channels to plug together program modules called processes. A process can encapsulate common data (called PROESS OMMON to emphasize that it is local to the process), subprocesses, and internal communication. Processes do not share data and can communicate only by sending and receiving data on channels. Access to channels is provided via ports that are passed to processes as arguments. Hence, a Fortran M implementation of an earth system model can preserve the modularity that is inherent in its scientic specication. Each component can be encapsulated as a module (Figure 2) and alternative implementations can be substituted without modications to other program components. Safety. Operations on channels are restricted so as to guarantee deterministic execution, even when programs execute on many processors. hannels are typed, so a compiler can check for correct usage. Hence, the risk of incorrect (and particularly time-dependent) errors is reduced. Architecture Independence. The mapping of processes to processors can be specied with respect to a virtual computer with size and shape dierent

3 SEQUENTIAL OR PARALLEL PROGRAM Figure 2: A process and its interface. In this example, four in-ports and two outports (represented as arrows) dene the interface, while internal implementation details are hidden. These internal details can include subprocesses and internal communications. from that of the target computer. Mapping is specied by annotations that inuence performance but not correctness. Hence, the programmer need not change component programs in order to experiment with alternative congurations of processors and computers. 4. Building Models The Fortran M implementation of a simplied ocean/atmosphere model is presented for illustrative purposes. In this model, two components execute concurrently and exchange information periodically: An ocean model provides an atmosphere model with an array of sea surface temperatures (SST), and an atmosphere model provides an ocean model with two arrays containing components of horizontal momentum, U and V. The two models are assumed to utilize the same grid system, numerical units, and time steps; hence, data can be transferred between them without additional computation. Normally, two additional components would be required to convert data between the representations used by the two models. 4.1 Sequential Models The Fortran M program implements both models as processes, and denes an interface that allows for the exchange of SST, U, and V values. Initially, the two models are assumed to be sequential programs; hence, the interface can consist of one channel in each direction. For example, the atmospheric model interface consists of two ports, sst i and uv o, and is dened as follows. Notice the type declarations for the ports: The in-port sst i can be used to receive arrays of real values representing sea surface temperatures, while the out-port uv o can be used to send two such arrays representing U and V values.

4 process atmosphere(sst_i,uv_o) parameter(nlat=128,nlon=256) inport (real x(nlat,nlon)) sst_i outport (real x(nlat,nlon), real y(nlat,nlon)) uv_o The following code shows the atmosphere model process in its entirety. It uses SEND and REEIVE statements to repeatedly send U and V data on the port uv o, receive SST data from the port sst i, and call the atmosphere model proper. A total of TMAX messages are sent and received. Note the use of process common to hold the sst, u, and v arrays. process atmosphere(sst i,uv o) parameter(nlat=128, NLON=256, TMAX=100) The ports sst i and uv o are the external interface. inport (real x(nlat,nlon)) sst i outport (real x(nlat,nlon), real y(nlat,nlon)) uv o Process common variables. process common /state/ sst, u, v real sst(nlat,nlon), u(nlat,nlon), v(nlat,nlon) call atm init Repeat TMAX times: send U & V, recv SST, update U & V. do 10 i=1,tmax send(uv o) u,v receive(sst i) sst call atm compute 10 continue end The ocean model might be as follows. This repeatedly sends SST data on the out-port sst o and receives U and V data on the in-port uv i. process ocean(uv i,sst o) parameter(nlat=128, NLON=256, TMAX=100) The ports uv i and sst o are the external interface. inport (real x(nlat,nlon), real y(nlat,nlon)) uv i outport (real x(nlat,nlon)) sst o Process common variables. process common /state/ sst, u, v real sst(nlat,nlon), u(nlat,nlon), v(nlat,nlon) call ocn init

5 Repeat TMAX times: send SST, recv U & V, compute SST. do 10 i=1,tmax send(sst o) sst receive(uv i) u,v call ocn compute 10 continue end The implementation of the ocean/atmosphere model is completed by a main program that invokes the two processes in a parallel block (delineated by PROESSES and ENDPROESSES statements) and creates two channels, one for communicating SST values and the other for communicating U and V values. This structure is illustrated in Figure 3 and is created by the following program. The program creates two channels, spawns the atmosphere and ocean processes, and waits until these processes terminate. program model parameter(nlat=128, NLON=256) Local port variables. inport (real x(nlat,nlon)) ssti outport (real x(nlat,nlon)) ssto inport (real x(nlat,nlon), real y(nlat,nlon)) uvi outport (real x(nlat,nlon), real y(nlat,nlon)) uvo reate channels and dene ports. channel(out=ssto,in=ssti) channel(out=uvo,in=uvi) all two models with ports as arguments. processes call atmosphere(ssti,uvo) call ocean(uvi,ssto) endprocesses end The values of the four port variables declared in this code fragment are initially undened. The HANNEL statements each create a channel and dene their two port variable arguments to be references to this channel. These port variables are passed as arguments to the concurrently executing atmosphere and ocean processes, establishing the connections shown in Figure 3. We now have a complete parallel program which can be executed on a sequential or parallel computer. This program can be executed on one processor or two without any change to its component modules: these dierent

6 uvo channel(uvi, uvo) uvi A T M ssti channel(ssti, ssto) ssto O N Figure 3: Ocean/atmosphere model. Two concurrently executing processes are connected by two single-producer, single-consumer channels. behaviors are specied by annotations to the process calls in the main program. The execution order of the concurrently executing atmosphere and ocean processes is determined only by availability of messages on channels. The computed result does not depend on the order in which the processes execute. That is, the program is deterministic. 4.2 Parallel Models The example in the preceding section shows how Fortran M is used to combine sequential models. Similar techniques can be used to combine parallel models. A parallel model implemented in Fortran M creates many processes (typically one per processor); these execute in parallel and exchange data by channels that are local to the parallel model. When dening an interface between two such models, it is not in general sucient to utilize a single channel as this is likely to constitute a bottleneck. Instead, we dene a parallel interface consisting of an array of channels. For example, assume that we have parallel versions of our ocean and atmosphere models, each designed to execute on NPNP processors. We decompose two channels used to connect the sequential programs to obtain two arrays of NPNP channels. While a channel in the sequential program was used to communicate arrays of size NLATNLON, each channel in the parallel program is used to communicate arrays of size (NLAT/NP)(NLON/NP). The code used to combine the two parallel models is as follows. program model parameter(nlat=128,nlon=256,np=16,plon=nlon/np,plat=nlat/np) inport (real x(plat,plon)) SstI(NP,NP) outport (real x(plat,plon)) SstO(NP,NP) inport (real x(plat,plon), real y(plat,plon)) UvI(NP,NP) outport (real x(plat,plon), real y(plat,plon)) UvO(NP,NP)

7 ... reate NPNP channels. do 10 i=1,np do 11 j=1,np channel(out=ssto(i,j),in=ssti(i,j)) channel(out=uvo(i,j),in=uvi(i,j)) 11 continue 10 continue... Pass port arrays to parallel models. processes call par atmosphere(ssti,uvo) call par ocean(ssto,uvi) endprocesses end 5. Discussion As the simple examples presented in this paper show, the use of Fortran M allows earth system models to be developed in a modular fashion. I hypothesize that this modularity can reduce software engineering costs in at least four ways. First, existing programs can be integrated into earth system models without the need for extensive reengineering. Second, alternative implementations of components can be substituted without changes to other parts of a system. Third, reusable modules can be dened that implement such commonly-used functions as interpolation and parallel I/O. Fourth, models can be adapted to run on dierent computers or to use dierent processor congurations, without changes to the component programs. These hypothetical benets must be conrmed by empirical investigations in larger systems. These investigations need to focus on issues of compatibility, performance, and modularity. I discuss these issues briey here and outline how we are addressing them. ompatibility. Development of an earth system model would be easy if all parallel codes that were to be integrated into an earth system model were written in Fortran M. However, in practice we must be able to deal with codes developed with other technologies. In the short term, these will be primarily message-passing libraries such as p4/parmas, PIL, Express, and PVM. In the medium term, High Performance Fortran is also likely to be important. As it will not in general be feasible to rewrite message-

8 passing or HPF programs in Fortran M, we plan to develop compatability libraries that allow message-passing and HPF programs to be integrated into Fortran M programs in a seamless fashion. Performance. A program developed in the modular fashion advocated in this paper may incur overheads that would not be incurred if it were implemented as a monolithic program. Primary sources of overhead are additional copying due to the use of channels for data transfer between processes and process switching when multiple processes execute on the same processor. These costs must be carefully evaluated and weighed against the benets of modular design, ease of modication, ease of reuse, and portability. We plan to conduct experiments to quantify these costs. Modularity. The modular programming style encouraged by Fortran M is expected to allow the development of generic, reusable modules for such commonly used functions as interpolation between grid systems and parallel I/O. However, it is possible that the complexities of dierent grid systems, data representations, etc., will frustrate such attempts. In order to investigate this issue, we are developing prototype parallel versions of generic data transfer modules developed at GFDL by Ron Pacanowski and his colleagues. We have recently completed implementation of a prototype Fortran M compiler (send electronic mail to fortran-m@mcs.anl.gov for details) which we plan to use for these investigations. Acknowledgments Fortran M is joint work with Mani handy of the alifornia Institute of Technology and is supported in part by the National Science Foundation's enter for Research in Parallel omputation, under ontract R Robert Olson has made major contributions to the development of the compiler. I am grateful to Ron Pacanowski of GFDL for discussions on modular construction of climate models. References I. Foster and K. M. handy, 1992: Fortran M: A Language for Modular Parallel Programming, Preprint MS-P , Argonne National Laboratory, Argonne, Ill.

A Software Developing Environment for Earth System Modeling. Depei Qian Beihang University CScADS Workshop, Snowbird, Utah June 27, 2012

A Software Developing Environment for Earth System Modeling. Depei Qian Beihang University CScADS Workshop, Snowbird, Utah June 27, 2012 A Software Developing Environment for Earth System Modeling Depei Qian Beihang University CScADS Workshop, Snowbird, Utah June 27, 2012 1 Outline Motivation Purpose and Significance Research Contents Technology

More information

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics The Compositional C++ Language Denition Peter Carlin Mani Chandy Carl Kesselman March 12, 1993 Revision 0.95 3/12/93, Comments welcome. Abstract This document gives a concise denition of the syntax and

More information

[8] J. J. Dongarra and D. C. Sorensen. SCHEDULE: Programs. In D. B. Gannon L. H. Jamieson {24, August 1988.

[8] J. J. Dongarra and D. C. Sorensen. SCHEDULE: Programs. In D. B. Gannon L. H. Jamieson {24, August 1988. editor, Proceedings of Fifth SIAM Conference on Parallel Processing, Philadelphia, 1991. SIAM. [3] A. Beguelin, J. J. Dongarra, G. A. Geist, R. Manchek, and V. S. Sunderam. A users' guide to PVM parallel

More information

Khoral Research, Inc. Khoros is a powerful, integrated system which allows users to perform a variety

Khoral Research, Inc. Khoros is a powerful, integrated system which allows users to perform a variety Data Parallel Programming with the Khoros Data Services Library Steve Kubica, Thomas Robey, Chris Moorman Khoral Research, Inc. 6200 Indian School Rd. NE Suite 200 Albuquerque, NM 87110 USA E-mail: info@khoral.com

More information

Compiler and Runtime Support for Programming in Adaptive. Parallel Environments 1. Guy Edjlali, Gagan Agrawal, and Joel Saltz

Compiler and Runtime Support for Programming in Adaptive. Parallel Environments 1. Guy Edjlali, Gagan Agrawal, and Joel Saltz Compiler and Runtime Support for Programming in Adaptive Parallel Environments 1 Guy Edjlali, Gagan Agrawal, Alan Sussman, Jim Humphries, and Joel Saltz UMIACS and Dept. of Computer Science University

More information

CUMULVS: Collaborative Infrastructure for Developing. Abstract. by allowing them to dynamically attach to, view, and \steer" a running simulation.

CUMULVS: Collaborative Infrastructure for Developing. Abstract. by allowing them to dynamically attach to, view, and \steer a running simulation. CUMULVS: Collaborative Infrastructure for Developing Distributed Simulations James Arthur Kohl Philip M. Papadopoulos G. A. Geist, II y Abstract The CUMULVS software environment provides remote collaboration

More information

MPI as a Coordination Layer for Communicating HPF Tasks

MPI as a Coordination Layer for Communicating HPF Tasks Syracuse University SURFACE College of Engineering and Computer Science - Former Departments, Centers, Institutes and Projects College of Engineering and Computer Science 1996 MPI as a Coordination Layer

More information

FMS: the Flexible Modeling System

FMS: the Flexible Modeling System FMS: the Flexible Modeling System Coupling Technologies for Earth System Modeling Toulouse FRANCE V. Balaji balaji@princeton.edu Princeton University 15 December 2010 Balaji (Princeton University) Flexible

More information

In his paper of 1972, Parnas proposed the following problem [42]:

In his paper of 1972, Parnas proposed the following problem [42]: another part of its interface. (In fact, Unix pipe and filter systems do this, the file system playing the role of the repository and initialization switches playing the role of control.) Another example

More information

Design Issues for the Parallelization of an Optimal Interpolation Algorithm

Design Issues for the Parallelization of an Optimal Interpolation Algorithm Syracuse University SURFACE Northeast Parallel Architecture Center College of Engineering and Computer Science 1994 Design Issues for the Parallelization of an Optimal Interpolation Algorithm Gregor von

More information

and easily tailor it for use within the multicast system. [9] J. Purtilo, C. Hofmeister. Dynamic Reconguration of Distributed Programs.

and easily tailor it for use within the multicast system. [9] J. Purtilo, C. Hofmeister. Dynamic Reconguration of Distributed Programs. and easily tailor it for use within the multicast system. After expressing an initial application design in terms of MIL specications, the application code and speci- cations may be compiled and executed.

More information

Chapter 5 Object-Oriented Programming

Chapter 5 Object-Oriented Programming Chapter 5 Object-Oriented Programming Develop code that implements tight encapsulation, loose coupling, and high cohesion Develop code that demonstrates the use of polymorphism Develop code that declares

More information

Application Programmer. Vienna Fortran Out-of-Core Program

Application Programmer. Vienna Fortran Out-of-Core Program Mass Storage Support for a Parallelizing Compilation System b a Peter Brezany a, Thomas A. Mueck b, Erich Schikuta c Institute for Software Technology and Parallel Systems, University of Vienna, Liechtensteinstrasse

More information

By Eric Fritzinger Sohei Okamoto

By Eric Fritzinger Sohei Okamoto By Eric Fritzinger Sohei Okamoto What are Models? Mathematical models used to describe a system E.g. Atmospheric, Oceanic, Ecological, etc Algorithmic calculations which take input and produce estimated

More information

Design of Parallel Programs Algoritmi e Calcolo Parallelo. Daniele Loiacono

Design of Parallel Programs Algoritmi e Calcolo Parallelo. Daniele Loiacono Design of Parallel Programs Algoritmi e Calcolo Parallelo Web: home.dei.polimi.it/loiacono Email: loiacono@elet.polimi.it References q The material in this set of slide is taken from two tutorials by Blaise

More information

2 3. Syllabus Time Event 9:00{10:00 morning lecture 10:00{10:30 morning break 10:30{12:30 morning practical session 12:30{1:30 lunch break 1:30{2:00 a

2 3. Syllabus Time Event 9:00{10:00 morning lecture 10:00{10:30 morning break 10:30{12:30 morning practical session 12:30{1:30 lunch break 1:30{2:00 a 1 Syllabus for the Advanced 3 Day Fortran 90 Course AC Marshall cuniversity of Liverpool, 1997 Abstract The course is scheduled for 3 days. The timetable allows for two sessions a day each with a one hour

More information

Mark J. Clement and Michael J. Quinn. Oregon State University. January 17, a programmer to predict what eect modications to

Mark J. Clement and Michael J. Quinn. Oregon State University. January 17, a programmer to predict what eect modications to Appeared in \Proceedings Supercomputing '93" Analytical Performance Prediction on Multicomputers Mark J. Clement and Michael J. Quinn Department of Computer Science Oregon State University Corvallis, Oregon

More information

A Component-based Programming Model for Composite, Distributed Applications

A Component-based Programming Model for Composite, Distributed Applications NASA/CR-2001-210873 ICASE Report No. 2001-15 A Component-based Programming Model for Composite, Distributed Applications Thomas M. Eidson ICASE, Hampton, Virginia ICASE NASA Langley Research Center Hampton,

More information

Language-Based Parallel Program Interaction: The Breezy Approach. Darryl I. Brown Allen D. Malony. Bernd Mohr. University of Oregon

Language-Based Parallel Program Interaction: The Breezy Approach. Darryl I. Brown Allen D. Malony. Bernd Mohr. University of Oregon Language-Based Parallel Program Interaction: The Breezy Approach Darryl I. Brown Allen D. Malony Bernd Mohr Department of Computer And Information Science University of Oregon Eugene, Oregon 97403 fdarrylb,

More information

CCSM Performance with the New Coupler, cpl6

CCSM Performance with the New Coupler, cpl6 CCSM Performance with the New Coupler, cpl6 Tony Craig Brian Kauffman Tom Bettge National Center for Atmospheric Research Jay Larson Rob Jacob Everest Ong Argonne National Laboratory Chris Ding Helen He

More information

Harnessing Grid Resources to Enable the Dynamic Analysis of Large Astronomy Datasets

Harnessing Grid Resources to Enable the Dynamic Analysis of Large Astronomy Datasets Page 1 of 5 1 Year 1 Proposal Harnessing Grid Resources to Enable the Dynamic Analysis of Large Astronomy Datasets Year 1 Progress Report & Year 2 Proposal In order to setup the context for this progress

More information

Construction of Application Generators Using Eli. Uwe Kastens, University of Paderborn, FRG. Abstract

Construction of Application Generators Using Eli. Uwe Kastens, University of Paderborn, FRG. Abstract Construction of Application Generators Using Eli Uwe Kastens, University of Paderborn, FRG Abstract Application generators are a powerful means for reuse of software design. They produce special purpose

More information

Running the NIM Next-Generation Weather Model on GPUs

Running the NIM Next-Generation Weather Model on GPUs Running the NIM Next-Generation Weather Model on GPUs M.Govett 1, J.Middlecoff 2 and T.Henderson 2 1 NOAA Earth System Research Laboratory, Boulder, CO, USA 2 Cooperative Institute for Research in the

More information

Software Reuse and Component-Based Software Engineering

Software Reuse and Component-Based Software Engineering Software Reuse and Component-Based Software Engineering Minsoo Ryu Hanyang University msryu@hanyang.ac.kr Contents Software Reuse Components CBSE (Component-Based Software Engineering) Domain Engineering

More information

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA

More information

Lecture 04 FUNCTIONS AND ARRAYS

Lecture 04 FUNCTIONS AND ARRAYS Lecture 04 FUNCTIONS AND ARRAYS 1 Motivations Divide hug tasks to blocks: divide programs up into sets of cooperating functions. Define new functions with function calls and parameter passing. Use functions

More information

Fundamentals of Programming Session 13

Fundamentals of Programming Session 13 Fundamentals of Programming Session 13 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Fall 2014 These slides have been created using Deitel s slides Sharif University of Technology Outlines

More information

Jukka Julku Multicore programming: Low-level libraries. Outline. Processes and threads TBB MPI UPC. Examples

Jukka Julku Multicore programming: Low-level libraries. Outline. Processes and threads TBB MPI UPC. Examples Multicore Jukka Julku 19.2.2009 1 2 3 4 5 6 Disclaimer There are several low-level, languages and directive based approaches But no silver bullets This presentation only covers some examples of them is

More information

15-122: Principles of Imperative Computation, Spring 2016

15-122: Principles of Imperative Computation, Spring 2016 15-122 Programming 3 Page 1 of 8 15-122: Principles of Imperative Computation, Spring 2016 Programming 3: Images Due: Thursday 4 th February, 2016 by 22:00 This programming assignment will have you using

More information

Programming II. Modularity 2017/18

Programming II. Modularity 2017/18 Programming II Modularity 2017/18 Module? Lecture Outline Evolution and history of programming languages Modularity Example History of Programming Programming Paradigms How and why languages develop? How

More information

Parallel Algorithm Design

Parallel Algorithm Design Chapter Parallel Algorithm Design Debugging is twice as hard as writing the code in the rst place. Therefore, if you write the code as cleverly as possible, you are, by denition, not smart enough to debug

More information

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development

More information

EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH PARALLEL IN-MEMORY DATABASE. Dept. Mathematics and Computing Science div. ECP

EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH PARALLEL IN-MEMORY DATABASE. Dept. Mathematics and Computing Science div. ECP EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH CERN/ECP 95-29 11 December 1995 ON-LINE EVENT RECONSTRUCTION USING A PARALLEL IN-MEMORY DATABASE E. Argante y;z,p. v.d. Stok y, I. Willers z y Eindhoven University

More information

Steering. Stream. User Interface. Stream. Manager. Interaction Managers. Snapshot. Stream

Steering. Stream. User Interface. Stream. Manager. Interaction Managers. Snapshot. Stream Agent Roles in Snapshot Assembly Delbert Hart Dept. of Computer Science Washington University in St. Louis St. Louis, MO 63130 hart@cs.wustl.edu Eileen Kraemer Dept. of Computer Science University of Georgia

More information

Software Code Performance Review Saple

Software Code Performance Review Saple Software Code Performance Review Saple Table of Contents Executive Summary 2 Scope of Review 2 Recommendations for Short Term Fixes 2 Page/Scripting Issues 2 Missing Response Buffering 2 Not Using Option

More information

Software Architecture and Design I

Software Architecture and Design I Software Architecture and Design I Instructor: Yongjie Zheng February 23, 2017 CS 490MT/5555 Software Methods and Tools Outline What is software architecture? Why do we need software architecture? How

More information

C Programming for Engineers Functions

C Programming for Engineers Functions C Programming for Engineers Functions ICEN 360 Spring 2017 Prof. Dola Saha 1 Introduction Real world problems are larger, more complex Top down approach Modularize divide and control Easier to track smaller

More information

Reimplementation of the Random Forest Algorithm

Reimplementation of the Random Forest Algorithm Parallel Numerics '05, 119-125 M. Vajter²ic, R. Trobec, P. Zinterhof, A. Uhl (Eds.) Chapter 5: Optimization and Classication ISBN 961-6303-67-8 Reimplementation of the Random Forest Algorithm Goran Topi,

More information

Design of a Software Framework Prototype for Scientific Model Interoperability

Design of a Software Framework Prototype for Scientific Model Interoperability 2010 Annual Nevada NSF EPSCoR Climate Change Conference 2010 Annual Nevada NSF EPSCoR Climate Change Conference Feb 2nd, 10:30 AM - 10:40 AM Design of a Software Framework Prototype for Scientific Model

More information

a simple structural description of the application

a simple structural description of the application Developing Heterogeneous Applications Using Zoom and HeNCE Richard Wolski, Cosimo Anglano 2, Jennifer Schopf and Francine Berman Department of Computer Science and Engineering, University of California,

More information

Egemen Tanin, Tahsin M. Kurc, Cevdet Aykanat, Bulent Ozguc. Abstract. Direct Volume Rendering (DVR) is a powerful technique for

Egemen Tanin, Tahsin M. Kurc, Cevdet Aykanat, Bulent Ozguc. Abstract. Direct Volume Rendering (DVR) is a powerful technique for Comparison of Two Image-Space Subdivision Algorithms for Direct Volume Rendering on Distributed-Memory Multicomputers Egemen Tanin, Tahsin M. Kurc, Cevdet Aykanat, Bulent Ozguc Dept. of Computer Eng. and

More information

Multimethod Communication for. Ian Fostery Jonathan Geislery Carl Kesselmanz Steve Tueckey. Argonne, IL U.S.A.

Multimethod Communication for. Ian Fostery Jonathan Geislery Carl Kesselmanz Steve Tueckey. Argonne, IL U.S.A. Multimethod Communication for High-Performance Metacomputing Applications Ian Fostery Jonathan Geislery Carl Kesselmanz Steve Tueckey ymathematics and Computer Science Division Argonne National Laboratory

More information

High Performance Computing

High Performance Computing The Need for Parallelism High Performance Computing David McCaughan, HPC Analyst SHARCNET, University of Guelph dbm@sharcnet.ca Scientific investigation traditionally takes two forms theoretical empirical

More information

pc++/streams: a Library for I/O on Complex Distributed Data-Structures

pc++/streams: a Library for I/O on Complex Distributed Data-Structures pc++/streams: a Library for I/O on Complex Distributed Data-Structures Jacob Gotwals Suresh Srinivas Dennis Gannon Department of Computer Science, Lindley Hall 215, Indiana University, Bloomington, IN

More information

City Research Online. Permanent City Research Online URL:

City Research Online. Permanent City Research Online URL: Kloukinas, C., Saridakis, T. & Issarny, V. (1999). Fault Tolerant Access to Dynamically Located Services for CORBA Applications. Paper presented at the Computer Applications in Industry and Engineering

More information

Centre for Parallel Computing, University of Westminster, London, W1M 8JS

Centre for Parallel Computing, University of Westminster, London, W1M 8JS Graphical Construction of Parallel Programs G. R. Ribeiro Justo Centre for Parallel Computing, University of Westminster, London, WM 8JS e-mail: justog@wmin.ac.uk, Abstract Parallel programming is not

More information

Background and Accuracy Analysis of the Xfactor7 Table: Final Report on QuikScat X Factor Accuracy

Background and Accuracy Analysis of the Xfactor7 Table: Final Report on QuikScat X Factor Accuracy Brigham Young University Department of Electrical and Computer Engineering 9 Clyde Building Provo, Utah 86 Background and Accuracy Analysis of the Xfactor7 Table: Final Report on QuikScat X Factor Accuracy

More information

Offloading Java to Graphics Processors

Offloading Java to Graphics Processors Offloading Java to Graphics Processors Peter Calvert (prc33@cam.ac.uk) University of Cambridge, Computer Laboratory Abstract Massively-parallel graphics processors have the potential to offer high performance

More information

DBMS Environment. Application Running in DMS. Source of data. Utilization of data. Standard files. Parallel files. Input. File. Output.

DBMS Environment. Application Running in DMS. Source of data. Utilization of data. Standard files. Parallel files. Input. File. Output. Language, Compiler and Parallel Database Support for I/O Intensive Applications? Peter Brezany a, Thomas A. Mueck b and Erich Schikuta b University of Vienna a Inst. for Softw. Technology and Parallel

More information

Introduction to Regional Earth System Model (RegESM)

Introduction to Regional Earth System Model (RegESM) Introduction to Regional Earth System Model (RegESM) Ufuk Turuncoglu Istanbul Technical University Informatics Institute 14/05/2014, 7th ICTP Workshop on the Theory and Use of Regional Climate Models Outline

More information

IN5050: Programming heterogeneous multi-core processors Thinking Parallel

IN5050: Programming heterogeneous multi-core processors Thinking Parallel IN5050: Programming heterogeneous multi-core processors Thinking Parallel 28/8-2018 Designing and Building Parallel Programs Ian Foster s framework proposal develop intuition as to what constitutes a good

More information

DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC

DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, 28-3 April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC 1131-3 Martin hman Stefan Johansson Karl-Erik rzen Department of Automatic

More information

ITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University

ITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University ITC213: STRUCTURED PROGRAMMING Bhaskar Shrestha National College of Computer Studies Tribhuvan University Lecture 03: Program Development Life Cycle Readings: Not Covered in Textbook Program Development

More information

Natural Semantics [14] within the Centaur system [6], and the Typol formalism [8] which provides us with executable specications. The outcome of such

Natural Semantics [14] within the Centaur system [6], and the Typol formalism [8] which provides us with executable specications. The outcome of such A Formal Executable Semantics for Java Isabelle Attali, Denis Caromel, Marjorie Russo INRIA Sophia Antipolis, CNRS - I3S - Univ. Nice Sophia Antipolis, BP 93, 06902 Sophia Antipolis Cedex - France tel:

More information

MATLAB*P: Architecture. Ron Choy, Alan Edelman Laboratory for Computer Science MIT

MATLAB*P: Architecture. Ron Choy, Alan Edelman Laboratory for Computer Science MIT MATLAB*P: Architecture Ron Choy, Alan Edelman Laboratory for Computer Science MIT Outline The p is for parallel MATLAB is what people want Supercomputing in 2003 The impact of the Earth Simulator The impact

More information

ECE519 Advanced Operating Systems

ECE519 Advanced Operating Systems IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (10 th Week) (Advanced) Operating Systems 10. Multiprocessor, Multicore and Real-Time Scheduling 10. Outline Multiprocessor

More information

Minsoo Ryu. College of Information and Communications Hanyang University.

Minsoo Ryu. College of Information and Communications Hanyang University. Software Reuse and Component-Based Software Engineering Minsoo Ryu College of Information and Communications Hanyang University msryu@hanyang.ac.kr Software Reuse Contents Components CBSE (Component-Based

More information

Application Composition in Ensemble using Intercommunicators and Process Topologies

Application Composition in Ensemble using Intercommunicators and Process Topologies Application Composition in Ensemble using Intercommunicators and Process Topologies Yiannis Cotronis Dept. of Informatics and Telecommunications, Univ. of Athens, 15784 Athens, Greece cotronis@di.uoa.gr

More information

Our SQL/XML Breakthrough Technology Solution

Our SQL/XML Breakthrough Technology Solution Advanced Data Access Technologies, Inc. www.adatinc.com (310)395-6889 Our SQL/ML reakthrough Technology Solution We are developing the only ANSI SQL processor that transparently and fully integrates native

More information

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software by Tao et al. (Chapters 9 and 10) (SOA) 1 Interaction

More information

Portable Parallel CORBA Objects: an Approach to Combine Parallel and Distributed Programming for Grid Computing

Portable Parallel CORBA Objects: an Approach to Combine Parallel and Distributed Programming for Grid Computing Portable Parallel CORBA Objects: an Approach to Combine Parallel and Distributed Programming for Grid Computing Alexandre Denis, Christian Pérez, Thierry Priol To cite this version: Alexandre Denis, Christian

More information

RegCM-ROMS Tutorial: Coupling RegCM-ROMS

RegCM-ROMS Tutorial: Coupling RegCM-ROMS RegCM-ROMS Tutorial: Coupling RegCM-ROMS Ufuk Utku Turuncoglu ICTP (International Center for Theoretical Physics) Earth System Physics Section - Outline Outline Information about coupling and ESMF Installation

More information

SOFTWARE VERIFICATION RESEARCH CENTRE DEPARTMENT OF COMPUTER SCIENCE THE UNIVERSITY OF QUEENSLAND. Queensland 4072 Australia TECHNICAL REPORT

SOFTWARE VERIFICATION RESEARCH CENTRE DEPARTMENT OF COMPUTER SCIENCE THE UNIVERSITY OF QUEENSLAND. Queensland 4072 Australia TECHNICAL REPORT SOFTWARE VERIFICATION RESEARCH CENTRE DEPARTMENT OF COMPUTER SCIENCE THE UNIVERSITY OF QUEENSLAND Queensland 4072 Australia TECHNICAL REPORT No. 94-2 Integration of semantic tools into document editors

More information

Separation of implementations of computations and synchronizations has direct implications on the extensibility and modiability of programs. Concurren

Separation of implementations of computations and synchronizations has direct implications on the extensibility and modiability of programs. Concurren Support for Implementation of Evolutionary Concurrent Systems in Concurrent Programming Languages Raju Pandey 1 andj.c.browne 2 1 Computer Science Department, University of California, Davis, CA 95616

More information

Free upgrade of computer power with Java, web-base technology and parallel computing

Free upgrade of computer power with Java, web-base technology and parallel computing Free upgrade of computer power with Java, web-base technology and parallel computing Alfred Loo\ Y.K. Choi * and Chris Bloor* *Lingnan University, Hong Kong *City University of Hong Kong, Hong Kong ^University

More information

A Framework for Building Parallel ATPs. James Cook University. Automated Theorem Proving (ATP) systems attempt to prove proposed theorems from given

A Framework for Building Parallel ATPs. James Cook University. Automated Theorem Proving (ATP) systems attempt to prove proposed theorems from given A Framework for Building Parallel ATPs Geo Sutclie and Kalvinder Singh James Cook University 1 Introduction Automated Theorem Proving (ATP) systems attempt to prove proposed theorems from given sets of

More information

OBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe

OBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe OBJECT ORIENTED PROGRAMMING USING C++ CSCI 5448- Object Oriented Analysis and Design By Manali Torpe Fundamentals of OOP Class Object Encapsulation Abstraction Inheritance Polymorphism Reusability C++

More information

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements. Contemporary Design We have been talking about design process Let s now take next steps into examining in some detail Increasing complexities of contemporary systems Demand the use of increasingly powerful

More information

A simple OASIS interface for CESM E. Maisonnave TR/CMGC/11/63

A simple OASIS interface for CESM E. Maisonnave TR/CMGC/11/63 A simple OASIS interface for CESM E. Maisonnave TR/CMGC/11/63 Index Strategy... 4 Implementation... 6 Advantages... 6 Current limitations... 7 Annex 1: OASIS3 interface implementation on CESM... 9 Annex

More information

Solve the Data Flow Problem

Solve the Data Flow Problem Gaining Condence in Distributed Systems Gleb Naumovich, Lori A. Clarke, and Leon J. Osterweil University of Massachusetts, Amherst Computer Science Department University of Massachusetts Amherst, Massachusetts

More information

Stackable Layers: An Object-Oriented Approach to. Distributed File System Architecture. Department of Computer Science

Stackable Layers: An Object-Oriented Approach to. Distributed File System Architecture. Department of Computer Science Stackable Layers: An Object-Oriented Approach to Distributed File System Architecture Thomas W. Page Jr., Gerald J. Popek y, Richard G. Guy Department of Computer Science University of California Los Angeles

More information

To be or not programmable Dimitri Papadimitriou, Bernard Sales Alcatel-Lucent April 2013 COPYRIGHT 2011 ALCATEL-LUCENT. ALL RIGHTS RESERVED.

To be or not programmable Dimitri Papadimitriou, Bernard Sales Alcatel-Lucent April 2013 COPYRIGHT 2011 ALCATEL-LUCENT. ALL RIGHTS RESERVED. To be or not programmable Dimitri Papadimitriou, Bernard Sales Alcatel-Lucent April 2013 Introduction SDN research directions as outlined in IRTF RG outlines i) need for more flexibility and programmability

More information

100 Mbps DEC FDDI Gigaswitch

100 Mbps DEC FDDI Gigaswitch PVM Communication Performance in a Switched FDDI Heterogeneous Distributed Computing Environment Michael J. Lewis Raymond E. Cline, Jr. Distributed Computing Department Distributed Computing Department

More information

Web site Image database. Web site Video database. Web server. Meta-server Meta-search Agent. Meta-DB. Video query. Text query. Web client.

Web site Image database. Web site Video database. Web server. Meta-server Meta-search Agent. Meta-DB. Video query. Text query. Web client. (Published in WebNet 97: World Conference of the WWW, Internet and Intranet, Toronto, Canada, Octobor, 1997) WebView: A Multimedia Database Resource Integration and Search System over Web Deepak Murthy

More information

Object-oriented development. Object-oriented Design. Objectives. Characteristics of OOD. Interacting objects. Topics covered

Object-oriented development. Object-oriented Design. Objectives. Characteristics of OOD. Interacting objects. Topics covered Object-oriented development Object-oriented Design Object-oriented analysis, design and programming are related but distinct. OOA is concerned with developing an object model of the application domain.

More information

Chapter 1: Key Concepts of Programming and Software Engineering

Chapter 1: Key Concepts of Programming and Software Engineering Chapter 1: Key Concepts of Programming and Software Engineering Software Engineering Coding without a solution design increases debugging time - known fact! A team of programmers for a large software development

More information

Open2Test Test Automation Framework Introduction - TestPartner

Open2Test Test Automation Framework Introduction - TestPartner Introduction - TestPartner Version 1.0 September 2009 DISCLAIMER Verbatim copying and distribution of this entire article is permitted worldwide, without royalty, in any medium, provided this notice is

More information

LABORATORY FOR COMPUTER SCIENCE

LABORATORY FOR COMPUTER SCIENCE LABORATORY FOR COMPUTER SCIENCE MASSACHUSETTS INSTITUTE OF TECHNOLOGY MIT/LCS/TR-637 A PROGRAMMING SYSTEM FOR THE DYNAMIC MANIPULATION OF TEMPORALLY SENSITIVE DATA Christopher J. Lindblad August, 1994

More information

Northeast Parallel Architectures Center. Syracuse University. May 17, Abstract

Northeast Parallel Architectures Center. Syracuse University. May 17, Abstract The Design of VIP-FS: A Virtual, Parallel File System for High Performance Parallel and Distributed Computing NPAC Technical Report SCCS-628 Juan Miguel del Rosario, Michael Harry y and Alok Choudhary

More information

Dynamic Process Management in an MPI Setting. William Gropp. Ewing Lusk. Abstract

Dynamic Process Management in an MPI Setting. William Gropp. Ewing Lusk.  Abstract Dynamic Process Management in an MPI Setting William Gropp Ewing Lusk Mathematics and Computer Science Division Argonne National Laboratory gropp@mcs.anl.gov lusk@mcs.anl.gov Abstract We propose extensions

More information

Martin P. Robillard and Gail C. Murphy. University of British Columbia. November, 1999

Martin P. Robillard and Gail C. Murphy. University of British Columbia. November, 1999 Migrating a Static Analysis Tool to AspectJ TM Martin P. Robillard and Gail C. Murphy Department of Computer Science University of British Columbia 201-2366 Main Mall Vancouver BC Canada V6T 1Z4 fmrobilla,murphyg@cs.ubc.ca

More information

Keywords: networks-of-workstations, distributed-shared memory, compiler optimizations, locality

Keywords: networks-of-workstations, distributed-shared memory, compiler optimizations, locality Informatica 17 page xxx{yyy 1 Overlap of Computation and Communication on Shared-Memory Networks-of-Workstations Tarek S. Abdelrahman and Gary Liu Department of Electrical and Computer Engineering The

More information

CHAPTER 5 GENERAL OOP CONCEPTS

CHAPTER 5 GENERAL OOP CONCEPTS CHAPTER 5 GENERAL OOP CONCEPTS EVOLUTION OF SOFTWARE A PROGRAMMING LANGUAGE SHOULD SERVE 2 RELATED PURPOSES : 1. It should provide a vehicle for programmer to specify actions to be executed. 2. It should

More information

Dynamic Multi-Path Communication for Video Trac. Hao-hua Chu, Klara Nahrstedt. Department of Computer Science. University of Illinois

Dynamic Multi-Path Communication for Video Trac. Hao-hua Chu, Klara Nahrstedt. Department of Computer Science. University of Illinois Dynamic Multi-Path Communication for Video Trac Hao-hua Chu, Klara Nahrstedt Department of Computer Science University of Illinois h-chu3@cs.uiuc.edu, klara@cs.uiuc.edu Abstract Video-on-Demand applications

More information

142

142 Scope Rules Thus, storage duration does not affect the scope of an identifier. The only identifiers with function-prototype scope are those used in the parameter list of a function prototype. As mentioned

More information

CSc 10200! Introduction to Computing. Lecture 2-3 Edgardo Molina Fall 2013 City College of New York

CSc 10200! Introduction to Computing. Lecture 2-3 Edgardo Molina Fall 2013 City College of New York CSc 10200! Introduction to Computing Lecture 2-3 Edgardo Molina Fall 2013 City College of New York 1 C++ for Engineers and Scientists Third Edition Chapter 2 Problem Solving Using C++ 2 Objectives In this

More information

task object task queue

task object task queue Optimizations for Parallel Computing Using Data Access Information Martin C. Rinard Department of Computer Science University of California, Santa Barbara Santa Barbara, California 9316 martin@cs.ucsb.edu

More information

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Introduction History, Characteristics of Java language Java Language Basics Data types, Variables, Operators and Expressions Anatomy of a Java Program

More information

Institut fur Informatik, Universitat Klagenfurt. Institut fur Informatik, Universitat Linz. Institut fur Witschaftsinformatik, Universitat Linz

Institut fur Informatik, Universitat Klagenfurt. Institut fur Informatik, Universitat Linz. Institut fur Witschaftsinformatik, Universitat Linz Coupling and Cohesion in Object-Oriented Systems Johann Eder (1) Gerti Kappel (2) Michael Schre (3) (1) Institut fur Informatik, Universitat Klagenfurt Universitatsstr. 65, A-9020 Klagenfurt, Austria,

More information

Object Oriented Design

Object Oriented Design Object Oriented Design Chapter 6 Example Activity Diagram 1 Outline Chapter 6 Topics 6.6 C++ Standard Library Header Files 6.14 Inline Functions 6.16 Default Arguments 6.17 Unary Scope Resolution Operator

More information

Construction of a Dynamic Document Using Context-Free Pieces Takayama, Ikoma, Nara , Japan

Construction of a Dynamic Document Using Context-Free Pieces Takayama, Ikoma, Nara , Japan Construction of a Dynamic Document Using Context-Free Pieces Kenji Hanakawa Department of Electrical Engineering and Computer Science Osaka Prefectural College of Technology 26-12 Saiwaicho, Neyagawashi

More information

Oops known as object-oriented programming language system is the main feature of C# which further support the major features of oops including:

Oops known as object-oriented programming language system is the main feature of C# which further support the major features of oops including: Oops known as object-oriented programming language system is the main feature of C# which further support the major features of oops including: Abstraction Encapsulation Inheritance and Polymorphism Object-Oriented

More information

2 Notation: A Functional Specification Language

2 Notation: A Functional Specification Language The Construction of Numerical Mathematical Software for the AMT DAP by Program Transformation. James M. Boyle z 1, Maurice Clint, Stephen Fitzpatrick 2, Terence J. Harmer The Queen s University of Belfast

More information

Cover Page. Author: Vu, Van Thieu Title: Opportunities for performance optimization of applications through code generation Issue Date:

Cover Page. Author: Vu, Van Thieu Title: Opportunities for performance optimization of applications through code generation Issue Date: Cover Page The handle http://hdl.handle.net/1887/18622 holds various files of this Leiden University dissertation. Author: Vu, Van Thieu Title: Opportunities for performance optimization of applications

More information

Implementing Coroutines with call/cc. Producer/Consumer using Coroutines

Implementing Coroutines with call/cc. Producer/Consumer using Coroutines Implementing Coroutines with call/cc Producer/Consumer using Coroutines Coroutines are a very handy generalization of subroutines. A coroutine may suspend its execution and later resume from the point

More information

WHAT IS SOFTWARE ARCHITECTURE?

WHAT IS SOFTWARE ARCHITECTURE? WHAT IS SOFTWARE ARCHITECTURE? Chapter Outline What Software Architecture Is and What It Isn t Architectural Structures and Views Architectural Patterns What Makes a Good Architecture? Summary 1 What is

More information

Ecient Processor Allocation for 3D Tori. Wenjian Qiao and Lionel M. Ni. Department of Computer Science. Michigan State University

Ecient Processor Allocation for 3D Tori. Wenjian Qiao and Lionel M. Ni. Department of Computer Science. Michigan State University Ecient Processor llocation for D ori Wenjian Qiao and Lionel M. Ni Department of Computer Science Michigan State University East Lansing, MI 4884-107 fqiaow, nig@cps.msu.edu bstract Ecient allocation of

More information

Technische Universitat Munchen. Institut fur Informatik. D Munchen.

Technische Universitat Munchen. Institut fur Informatik. D Munchen. Developing Applications for Multicomputer Systems on Workstation Clusters Georg Stellner, Arndt Bode, Stefan Lamberts and Thomas Ludwig? Technische Universitat Munchen Institut fur Informatik Lehrstuhl

More information

System Design for Visualizing Scientific Computations

System Design for Visualizing Scientific Computations 25 Chapter 2 System Design for Visualizing Scientific Computations In Section 1.1 we defined five broad goals for scientific visualization. Specifically, we seek visualization techniques that 1. Can be

More information

Lecture 2 Tao Wang 1

Lecture 2 Tao Wang 1 Lecture 2 Tao Wang 1 Objectives In this chapter, you will learn about: Modular programs Programming style Data types Arithmetic operations Variables and declaration statements Common programming errors

More information