2005-03-22JL MONGE - Chimere software evolution 1 Chimere software evolution How to make a code : –Obscure –Less efficient –Usable by nobody but its author.

Slides:



Advertisements
Similar presentations
Streaming SIMD Extension (SSE)
Advertisements

ENGS 116 Lecture 101 ILP: Software Approaches Vincent H. Berk October 12 th Reading for today: , 4.1 Reading for Friday: 4.2 – 4.6 Homework #2:
Copyright © 2002 W. A. Tucker1 Chapter 1 Lecture Notes Bill Tucker Austin Community College COSC 1315.
The Java Language. Topics of this Course  Introduction to Java  The Java Language  Object Oriented Programming in Java  Exceptions Handling  Threads.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
Figure 1.1 Interaction between applications and the operating system.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
Chapter 1 Introduction to C Programming. 1.1 INTRODUCTION This book is about problem solving with the use of computers and the C programming language.
1.2 Language Processing Activities The fundamental language processing activities divided into two parts. 1. Program generation activities 2. Program execution.
Chapter 6: An Introduction to System Software and Virtual Machines
Computer Science 101 The Virtual Machine: Operating Systems.
Chapter 6: An Introduction to System Software and Virtual Machines Invitation to Computer Science, C++ Version, Fourth Edition ** Re-ordered, Updated 4/14/09.
What is R Muhammad Omer. What is R  R is the programing language software for statistical computing and data analysis  The R language is extensively.
This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
C++ for Java Programmers Chapter 1 Basic Philosophical Differences.
CCSA 221 Programming in C CHAPTER 2 SOME FUNDAMENTALS 1 ALHANOUF ALAMR.
® Page 1 Intel Compiler Lab – Intel Array Visualizer HDF Workshop VIII October 27, 2004 John Readey
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
Languages and Environments Higher Computing Unit 2 – Software Development.
ECE 259 / CPS 221 Advanced Computer Architecture II (Parallel Computer Architecture) Novel Architectures Copyright 2004 Daniel J. Sorin Duke University.
Standard Grade Computing SYSTEM SOFTWARE CHAPTER 19.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Java Virtual Machine Java Virtual Machine A Java Virtual Machine (JVM) is a set of computer software programs and data structures that use.
1 Computing Software. Programming Style Programs that are not documented internally, while they may do what is requested, can be difficult to understand.
Analyzing parallel programs with Pin Moshe Bach, Mark Charney, Robert Cohn, Elena Demikhovsky, Tevi Devor, Kim Hazelwood, Aamer Jaleel, Chi- Keung Luk,
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
Invitation to Computer Science 5 th Edition Chapter 6 An Introduction to System Software and Virtual Machine s.
CSC 230: C and Software Tools Rudra Dutta Computer Science Department Course Introduction.
INVITATION TO COMPUTER SCIENCE, JAVA VERSION, THIRD EDITION Chapter 6: An Introduction to System Software and Virtual Machines.
The LC-3 – Chapter 7 COMP 2620 Dr. James Money COMP
Operating System What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. An operating.
ITC Research Computing Support Using Matlab Effectively By: Ed Hall Research Computing Support Center Phone: Φ Fax:
Computer Programming 2 Why do we study Java….. Java is Simple It has none of the following: operator overloading, header files, pre- processor, pointer.
I Power Higher Computing Software Development Development Languages and Environments.
Operating System Principles And Multitasking
ECEG-3202 Computer Architecture and Organization Chapter 7 Reduced Instruction Set Computers.
PROGRAMMING GUIDELINES. SYLISTIC GUIDELINES  Meaningful names for identifiers Identifiers identify different parts of C++ programs. Identifiers should.
CPSC 171 Introduction to Computer Science System Software and Virtual Machines.
 Programming - the process of creating computer programs.
1 University of Maryland Runtime Program Evolution Jeff Hollingsworth © Copyright 2000, Jeffrey K. Hollingsworth, All Rights Reserved. University of Maryland.
Efficient software-based fault isolation Robert Wahbe, Steven Lucco, Thomas Anderson & Susan Graham Presented by: Stelian Coros.
Announcements Assignment 1 due Wednesday at 11:59PM Quiz 1 on Thursday 1.
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
Array computers. Single Instruction Stream Multiple Data Streams computer There two types of general structures of array processors SIMD Distributerd.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Software Engineering Algorithms, Compilers, & Lifecycle.
Algorithms in Programming Computer Science Principles LO
3/5/2002e-business and Information Systems1 Introduction Computer System Hardware Software HW Kernel/OS API Application Programs SW.
Secure Coding Rules for C++ Copyright © 2016 Curt Hill
Computer Systems Nat 5 Computing Science
Applied Operating System Concepts
Mitrion-C Currently a programming language for FPGA accelerators
Computer Systems Nat 5 Computing Science
SOFTWARE DESIGN AND ARCHITECTURE
SHARED MEMORY PROGRAMMING WITH OpenMP
Operating Systems Georgios Varsamopoulos
Vector Processing => Multimedia
Introduction to System Programming
MEMORY MANAGEMENT & their issues
Application Binary Interface (ABI)
PROGRAMMING METHODOLOGY
Parallel I/O System for Massively Parallel Processors
Compiler Back End Panel
Compiler Back End Panel
Coe818 Advanced Computer Architecture
Unit 1: Introduction to Operating System
1.3.7 High- and low-level languages and their translators
Presentation transcript:

JL MONGE - Chimere software evolution 1 Chimere software evolution How to make a code : –Obscure –Less efficient –Usable by nobody but its author –???

JL MONGE - Chimere software evolution 2 Chimere software evolution Chimere features –Clear, easy to understand –Very efficient on scalar machines –Makes use of public domain software (g77)

JL MONGE - Chimere software evolution 3 Chimere software evolution Chimere features –Clear, easy to understand –Very efficient on scalar machines –Makes use of public domain software (g77) But –I/O portability/performance problems –Poor security : implicit typing, data sharing through « commons » –Poor vectorization –Not designed for Massively Parallel Machines

JL MONGE - Chimere software evolution 4 Chimere software evolution Tentative guidelines –netCDF as a file format, instead of unformatted binary –Explicit typing –F95 style of programming –Better control on data sharing –Vectorization –Parallelism through MPI

JL MONGE - Chimere software evolution 5 Chimere software evolution netCDF as a file format –netCDF is an API, i.e. a set of library functions –Allows for storage of multidimensionnal arrays, with direct access –Portability = (netCDF + Conventions) Status –Almost completely implemented –I/O programs have been rewritten –Significant improvement of MM5 data ingest To be done –Toolbox (mapit for netCDF) –Generalize to all input data sets

JL MONGE - Chimere software evolution 6 Chimere software evolution Explicit typing –Generalization of « implicit none » –Many programming errors are now detected at compile time –Bundled packages remain unchanged Status –Done

JL MONGE - Chimere software evolution 7 Chimere software evolution F95 style of programming –Modified code uses f95 syntax –Use of Modules instead of « include » files –Macros allow for a concise and efficient I/O error processing –Bundled packages remain unchanged But –No dynamic memory allocation in Chimere core Resulted in 18 % excess execution time Status –Smooth transition from f77 to f95 –Free compiler g95 available in a few months

JL MONGE - Chimere software evolution 8 Chimere software evolution Vectorization –To allow for the use of SIMD instructions of X86 machines MMX, SSE1, SSE2, SSE3 instructions One SIMD instruction processes two real(kind=8) or four real(kind=4) in parallel –For the day when Chimere will run on a NEC SX … –Chimere core routines are not vectorizable Loops are not predictable at compile time –An in-depth analysis and rewrite of chimere core should be performed Status –To be done

JL MONGE - Chimere software evolution 9 Chimere software evolution Parallelization –To run chimere on clusters of PCs or on MPP machines Aiming at a significant (10 fold) improvement in execution time Use of MPI environnement –Requires a restructuration of chimere workspace Status –To be done