I/O server work at ICHEC Alastair McKinstry IS-ENES workshop, 2013.

Slides:



Advertisements
Similar presentations
MPI Message Passing Interface
Advertisements

Remote Procedure Call Design issues Implementation RPC programming
Streaming NetCDF John Caron July What does NetCDF do for you? Data Storage: machine-, OS-, compiler-independent Standard API (Application Programming.
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
Computer System Overview
U of R eXtensible Catalog Team MetaCat. Problem Domain.
Multithreading in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Lecture 8 Epidemic communication, Server implementation.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
Inter-process Communication in Hadoop
Status of netCDF-3, netCDF-4, and CF Conventions Russ Rew Community Standards for Unstructured Grids Workshop, Boulder
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
REFACTORING Lecture 4. Definition Refactoring is a process of changing the internal structure of the program, not affecting its external behavior and.
1 CSC 222: Computer Programming II Spring 2004 Searching and efficiency  sequential search  big-Oh, rate-of-growth  binary search Class design  templated.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Database Performance Tuning and Query Optimization.
Chapter 1 Computer System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
History Server & API Christopher Larrieu Jefferson Laboratory.
Test Of Distributed Data Quality Monitoring Of CMS Tracker Dataset H->ZZ->2e2mu with PileUp - 10,000 events ( ~ 50,000 hits for events) The monitoring.
MapServer-OGR-OPeNDAP: An Integrated System for Uniform Access to Land and Oceanographic Datasets Frank Warmerdam Consultant Thomas E. Burk University.
1 High level view of HDF5 Data structures and library HDF Summit Boeing Seattle September 19, 2006.
CSCI 6962: Server-side Design and Programming Web Services.
Pursuing Faster I/O in COSMO POMPA Workshop May 3rd 2010.
Model Coupling Environmental Library. Goals Develop a framework where geophysical models can be easily coupled together –Work across multiple platforms,
GraphLab: how I understood it with sample code Aapo Kyrola, Carnegie Mellon Univ. Oct 1, 2009.
ISetup – A Guide/Benefit for the Functional User! Mohan Iyer January 17 th, 2008.
Windows Network Programming ms-help://MS.MSDNQTR.2004JAN.1033/winsock/winsock/windows_sockets_start_page_2.htm 井民全.
Sample Application Multi Layered Architecture (n-tier): –Graphical User Interface (GUI): Forms, components, controls The Visual Designer in Visual Studio.
1 Web Based Programming Section 8 James King 12 August 2003.
1 Sergio Maffioletti Grid Computing Competence Center GC3 University of Zurich Swiss Grid School 2012 Develop High Throughput.
CS 346 – Chapter 4 Threads –How they differ from processes –Definition, purpose Threads of the same process share: code, data, open files –Types –Support.
Dynamic Architectures (Component Reconfiguration) with Fractal.
The Replica Location Service The Globus Project™ And The DataGrid Project Copyright (c) 2002 University of Chicago and The University of Southern California.
The HDF Group Milestone 5.1: Initial POSIX Function Shipping Demonstration Jerome Soumagne, Quincey Koziol 09/24/2013 © 2013 The HDF Group.
SEE-GRID-SCI The SEE-GRID-SCI initiative is co-funded by the European Commission under the FP7 Research Infrastructures contract no.
AMB HW LOW LEVEL SIMULATION VS HW OUTPUT G. Volpi, INFN Pisa.
Google App Engine MemCache ae-09-session
Derek Wright Computer Sciences Department University of Wisconsin-Madison Condor and MPI Paradyn/Condor.
ATmospheric, Meteorological, and Environmental Technologies RAMS Parallel Processing Techniques.
Worldwide Lexicon Brian McConnell May, WWL – Brian McConnell Worldwide Lexicon Intro Automatic discovery of dictionary, semantic net and translation.
STAR C OMPUTING Plans for Production Use of Grand Challenge Software in STAR Torre Wenaus BNL Grand Challenge Meeting LBNL 10/23/98.
4P13 Week 12 Talking Points Device Drivers 1.Auto-configuration and initialization routines 2.Routines for servicing I/O requests (the top half)
Copyright © GENIVI Alliance 2015
1 For Loops l From Chapter 9 l A shorthand way of coding count loops.
LCG Distributed Databases Deployment – Kickoff Workshop Dec Database Lookup Service Kuba Zajączkowski Chi-Wei Wang.
Project18 Communication Design + Parallelization Camilo A Silva BIOinformatics Summer 2008.
INFSO-RI Enabling Grids for E-sciencE gLite C++ Configurator Practical experience gLite Configuration Meeting, March 1, 2005 Peter.
1 Channel Access Concepts – IHEP EPICS Training – K.F – Aug EPICS Channel Access Concepts Kazuro Furukawa, KEK (Bob Dalesio, LANL)
EEL 5937 The Bond Agent System (1) EEL 5937 Multi Agent Systems Lecture 8, Jan 30, 2003 Lotzi Bölöni.
DMLite GridFTP frontend Andrey Kiryanov IT/SDC 13/12/2013.
ESO - Garching 08 – 09 March, st ALMA Common Software Workshop XML « Data by Value » Transport.
Data-Centric Systems Lab. A Virtual Cloud Computing Provider for Mobile Devices Gonzalo Huerta-Canepa presenter 김영진.
XML scheme for configuration data V.Černý on behalf of the Bratislava group Initiated by Marco’s call:...a software layer for implementing the handling.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview: Using Hardware.
Static SDO Proposal Main Points/ Next Steps. Goals of specification Not about the algorithm to generate Static SDOs Instead, about how Static SDOs map.
G. Russo, D. Del Prete, S. Pardi Kick Off Meeting - Isola d'Elba, 2011 May 29th–June 01th A proposal for distributed computing monitoring for SuperB G.
3.1 Objects. Data type. Set of values and operations on those values. Primitive/Built-In types. n Usually single values n Can build arrays but they can.
Searching and Sorting Searching algorithms with simple arrays
SparkBWA: Speeding Up the Alignment of High-Throughput DNA Sequencing Data - Aditi Thuse.
A&AI Component Diagram
Extending the NetCDF Supported Data Formats using a Dispatch Layer
Geant4 Geometry Objects Persistency using ROOT
Control Structures Combine individual statements into a single logical unit with one entry point and one exit point. Used to regulate the flow of execution.
Control Structures Combine individual statements into a single logical unit with one entry point and one exit point. Used to regulate the flow of execution.
Abstract Class As per dictionary, abstraction is the quality of dealing with ideas rather than events. For example, when you consider the case of ,
Remote Data Access Update
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
Accessing Remote Datasets through the netCDF interface.
OO-Design in PHENIX PHENIX, a BIG Collaboration A Liberal Data Model
A Component-based Architecture for Mobile Information Access
Presentation transcript:

I/O server work at ICHEC Alastair McKinstry IS-ENES workshop, 2013

2 IS-ENES workshop on I/O for climate models, 2013 The Plan Components for a “Common I/O server” Single I/O server, targeting EC-Earth for testing: Write both NetCDF & GRIB2 Work efficiently “everywhere”: on low-memory nodes (eg. BlueGene) Use XIOS post-processing Components to be usable for other models 2

3 IS-ENES workshop on I/O for climate models, 2013 Basic Ideas CDI-2-XIOS: A CDI user (application) could use XIOS “back-end” functions without changing their source. Intermediate interface library could replace the CDI back-end, call XIOS back-end instead. Would give CDI applications access to memcache and post-processing features in XIOS. XIOS-2-CDI: An XIOS user (application) could use CDI “back-end” functions without changing their source. XIOS applications could use the GRIB and other formats supported by CDI. Which (if any) of these would be useful? 3

4 IS-ENES workshop on I/O for climate models, 2013 Original workplan CDI Interface for IFS. –Gives GRIB2 output. Compare with existing output. CDI->XIOS mapping. –“Trivial”. –Allows XIOS transport layer, post-processing. “Memcache” code for XIOS –To support low-memory nodes. Delayed by staffing issues at ICHEC. PRACE project extended. 4

5 IS-ENES workshop on I/O for climate models, 2013 IFS IO: refactoring IOSTREAM: I/O not well structured: Codebase does RAW, GRIB, ARPEGE, FDB,.. I/O intermixed IOSTREAM_MIX.F90 refactored: Use as API, Add LCDIF, LXIOSF flags for CDI, XIOS output »IO_PUT, IO_GET, IO_INQUIRE, IOSTREAM_SETUP, IOREQUEST_SETUP, … Common code from existing IOSTREAM_MIX, IFS factored to IOSTREAM_COMMON Pass model information (grid, vertical axes, variables, etc.) down to CDI and XIOS interfaces And on to CMOR or CF-compliant file? 5

6 IS-ENES workshop on I/O for climate models, 2013 IFS Interface Initial work done on CDI: Using CDI serial interface on Rank 0 CDI-pio calls added but not used yet. Testing: What configurations ? EC-Earth3 test cases FullPOS to be always used? XIOS interface started. 6

7 IS-ENES workshop on I/O for climate models, 2013 CDI/ XIOS differences CDI-2-XIOS users would need to create XML files (essential for XIOS). Some CDI features have no counterpart in XML e.g., grid-types GRID_GAUSSIAN, GRID_LCC, etc.; z-axis types ZAXIS_SIGMA, ZAXIS_PRESSURE, etc. Sequential jobs possible in CDI, not in XIOS Same possibly true for MPI communicators Some XIOS features (attributes, groups, sub-domain structures) may have no counterpart in CDI. Few CDI or XIOS functions have simple one-to-one mapping between them 7

8 IS-ENES workshop on I/O for climate models, 2013 Tentative Mapping CDIXIOS namespacecontext pioInitxios_initialize xios_init_server xios_context_initialize pioEndDefxios_close_context_definition gridCreatexios_add_grid zaxisCreatexios_add_axis xios_add_axisgroup streamOpenWritexios_add_file streamDefTimestepxios_set_timestep streamWriteVarxios_send_field gridDestroyxios_context_finalize ……

9 IS-ENES workshop on I/O for climate models, 2013 XIOS memory cache node Implement XIOS transport twice, existence of XIOS cache “transparent” to rest of XIOS Receive from compute node as priority; drained by I/O 9

IS-ENES workshop on I/O for climate models, 2013 Current XIOS Client Server iodef XML Read context definitions Client Server Read context definitions Register context, send definitions, close definitions Client Add/modify definitions Server Client Server Iterate over timesteps, send data, finalize context Client Server netCDF Write to disk

IS-ENES workshop on I/O for climate models, 2013 Memcache version Memcache Client Server iodef XML Read context definitions Client Server Register context (CLIENT) send definitions, close definitions Client Add/modify definitions Server Client Server Iterate over timesteps, send data, finalize Client Server netCDF Write to disk Read context definitions Memcache Register context (IO) + other objects send definitions, close definitions Memcache Iterate over timesteps, send data, finalize Memcache Create context (IO), create/copy definitions from context (CLIENT)

IS-ENES workshop on I/O for climate models, 2013 Memcache Configuration <!-- We must have buffer_size > jpi*jpj*jpk*8 (with jpi and jpj the subdomain size) --> true false oceanx 1

IS-ENES workshop on I/O for climate models, 2013 Implementation New class: CMemcache Only static methods At colour attribution, a number of XIOS servers get in the memcacheNodes list of MPI ranks to be used as cache nodes. Other servers are used as normal server nodes. CMemcache::isMemcacheNode() returns true if calling process is in the memcacheNodes list. Static methods from the CMemcache class are then called from within server methods if said 'server' process is a memcache

IS-ENES workshop on I/O for climate models, 2013 Current Status Works on XIOS 428 (Fortran test client) Updated to XIOS 447 to integrate with NEMO 3.5 Beta Works on XIOS 447 (Fortran test client) Crashes on XIOS 447 (NEMO 3.5 Beta client, ORCA2_LIM experiment) Mainly trouble with Memcache node duplicating properly the client elements Still works with NEMO client if Memcache value set to 0. “Non- intrusive” design works as expected.

IS-ENES workshop on I/O for climate models, 2013 Sending attributes from cache to server, good timing? void CDomain::recvLonLat(CEventServer& event) { list ::iterator it ; int srank; MPI_Comm_rank(CXios::globalComm,&srank); cout << " test in Domain:recvLonLat srank= " << srank << endl; string domainId ; for (it=event.subEvents.begin();it!=event.subEvents.end();++it) { CBufferIn* buffer=it->buffer; *buffer>>domainId ; get(domainId)->recvLonLat(*buffer) ; cout << " test in Domain:recvLonLat srank= " << srank << " DomID= " << domainId << endl; } if (CMemcache::isMemcacheNode()) { CContext* context = CContext::getCurrent(); CMemcache::PassAttributes(context); } -> Ideally, immediately after receiving each element -> In practice, need to wait until the cache node has all it needs: lonvalue_srv, latvalue_srv critical... -> Inheritance issues?

16 IS-ENES workshop on I/O for climate models, 2013 Current work and plans Memcache: Use single memcache node per client: minimize client mem. usage Merge client domains on memcache; useful for efficient transposes in CDI Needed for GRIB with large domains IFS: Complete XIOS interface XIOS: Add CDI GRIB writing 16