PADTAD 2008 Memory Tagging in Charm++ Filippo Gioachin Laxmikant V. Kalé Department of Computer Science University of Illinois at Urbana-Champaign.

Slides:



Advertisements
Similar presentations
Lecture 16 Buffer Overflow modified from slides of Lawrie Brown.
Advertisements

Operating-System Structures
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
Multilingual Debugging Support for Data-driven Parallel Languages Parthasarathy Ramachandran Laxmikant Kale Parallel Programming Laboratory Dept. of Computer.
RUAG Aerospace 11 Using SpaceWire as EGSE Interface Anders Petersén, Torbjörn Hult RUAG Aerospace Sweden AB (Saab Space) International SpaceWire Conference.
ECE669 L20: Evaluation and Message Passing April 13, 2004 ECE 669 Parallel Computer Architecture Lecture 20 Evaluation and Message Passing.
Based on Silberschatz, Galvin and Gagne  2009 Threads Definition and motivation Multithreading Models Threading Issues Examples.
Charm++ Load Balancing Framework Gengbin Zheng Parallel Programming Laboratory Department of Computer Science University of Illinois at.
A Portable Virtual Machine for Program Debugging and Directing Camil Demetrescu University of Rome “La Sapienza” Irene Finocchi University of Rome “Tor.
Operating System Chapter 7. Memory Management Lynn Choi School of Electrical Engineering.
9/13/20151 Threads ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original slides.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: System Structures.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 2: Operating-System Structures Operating.
(Superficial!) Review of Uniprocessor Architecture Parallel Architectures and Related concepts CS 433 Laxmikant Kale University of Illinois at Urbana-Champaign.
Support for Debugging Automatically Parallelized Programs Robert Hood Gabriele Jost CSC/MRJ Technology Solutions NASA.
Computer Science Detecting Memory Access Errors via Illegal Write Monitoring Ongoing Research by Emre Can Sezer.
CSC 230: C and Software Tools Rudra Dutta Computer Science Department Course Introduction.
A Fault Tolerant Protocol for Massively Parallel Machines Sayantan Chakravorty Laxmikant Kale University of Illinois, Urbana-Champaign.
1CPSD Software Infrastructure for Application Development Laxmikant Kale David Padua Computer Science Department.
Operating System Support for Easy Development of Distributed File Systems Kenichi Kourai* Shigeru Chiba** Takashi Masuda* *University of Tokyo **University.
CSCI Rational Purify 1 Rational Purify Overview Michel Izygon - Jim Helm.
Implementing Precise Interrupts in Pipelined Processors James E. Smith Andrew R.Pleszkun Presented By: Shrikant G.
(Superficial!) Review of Uniprocessor Architecture Parallel Architectures and Related concepts CS 433 Laxmikant Kale University of Illinois at Urbana-Champaign.
Chapter 2. System Structures
Integrated Performance Views in Charm++: Projections meets TAU Scott Biersdorff Allen D. Malony Department Computer and Information Science University.
CSc 352 Debugging Tools Saumya Debray Dept. of Computer Science The University of Arizona, Tucson
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Teragrid 2009 Scalable Interaction with Parallel Applications Filippo Gioachin Chee Wai Lee Laxmikant V. Kalé Department of Computer Science University.
1 Scalable Cosmological Simulations on Parallel Machines Filippo Gioachin¹ Amit Sharma¹ Sayantan Chakravorty¹ Celso Mendes¹ Laxmikant V. Kale¹ Thomas R.
Debugging Large Scale Parallel Applications Filippo Gioachin Parallel Programming Laboratory Departement of Computer Science University of Illinois at.
Doctoral Defense Filippo Gioachin September 27, 2010 Debugging Large Scale Applications with Virtualization.
Robust Non-Intrusive Record-Replay with Processor Extraction Filippo Gioachin Gengbin Zheng Laxmikant Kalé Parallel Programming Laboratory Departement.
Debugging Large Scale Applications in a Virtualized Environment Filippo Gioachin Gengbin Zheng Laxmikant Kalé Parallel Programming Laboratory Departement.
IPDPS 2009 Dynamic High-level Scripting in Parallel Applications Filippo Gioachin Laxmikant V. Kalé Department of Computer Science University of Illinois.
1 ChaNGa: The Charm N-Body GrAvity Solver Filippo Gioachin¹ Pritish Jetley¹ Celso Mendes¹ Laxmikant Kale¹ Thomas Quinn² ¹ University of Illinois at Urbana-Champaign.
Debugging Tools for Charm++ Applications Filippo Gioachin University of Illinois at Urbana-Champaign.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Software and Communication Driver, for Multimedia analyzing tools on the CEVA-X Platform. June 2007 Arik Caspi Eyal Gabay.
Advanced Computer Systems
Chapter 3: Process Concept
LiveViz – What is it? Charm++ library Visualization tool
Chapter 2: System Structures
Chapter 2 Processes and Threads Today 2.1 Processes 2.2 Threads
Operating System (013022) Dr. H. Iwidat
The Client/Server Database Environment
CharmDebug Filippo Gioachin.
File Management.
Operating Systems (CS 340 D)
CSc 352 Debugging Tools Saumya Debray Dept. of Computer Science
Introduction to Operating Systems
Multithreaded Programming
Operating Systems (CS 340 D)
Outline Chapter 2 (cont) OS Design OS structure
Faucets: Efficient Utilization of Multiple Clusters
Prof. Leonardo Mostarda University of Camerino
PROGRAMMING FUNDAMENTALS Lecture # 03. Programming Language A Programming language used to write computer programs. Its mean of communication between.
Operating System Introduction.
Chapter 2: Operating-System Structures
Debugging Support for Charm++
Chapter 5 Architectural Design.
An Orchestration Language for Parallel Objects
Chapter 4: Threads.
Support for Adaptivity in ARMCI Using Migratable Objects
M S COLLEGE ART’S, COMM., SCI. & BMS
Presentation transcript:

PADTAD 2008 Memory Tagging in Charm++ Filippo Gioachin Laxmikant V. Kalé Department of Computer Science University of Illinois at Urbana-Champaign

PADTAD Filippo Gioachin - UIUC Outline ● Overview – Charm++ RTS – CharmDebug ● Memory tagging – Charm++ memory subsystem – Detecting memory violations ● Future work

PADTAD Filippo Gioachin - UIUC Charm++ Overview ● Middleware written in C++ ● User decomposes work among objects (chares) ● System maps chares to processors – automatic load balancing – communication optimizations ● Communicate through asynchronous messages System view User view

PADTAD Filippo Gioachin - UIUC Example: cosmology ● Both sequential and parallel ● Extendable outside Charm++ gravity fluid-dynamics time processors Separate modulesInterleaved modules

PADTAD Filippo Gioachin - UIUC Charm++ RTS ● Message contains: – destination chare ID – method to be invoked

PADTAD Filippo Gioachin - UIUC CharmDebug Overview ● Developed specifically with Charm++ in mind – Provides information at the Charm++ abstraction level ● Composed of two modules: – Java GUI (client) – Plugin inside Charm++

PADTAD Filippo Gioachin - UIUC CharmDebug Architecture CharmDebug Java GUI (local machine) Firewal l Parallel Application (remote machine) CharmDebu g Applicatio n CCS (Converse Client- Server) GDB CharmDebug module

PADTAD Filippo Gioachin - UIUC Main View output entry method s processor subsets messages queued message details

PADTAD Filippo Gioachin - UIUC Charm++ Memory Subsystem ● At link time compile a memory library in ● Re-implement malloc, free, etc. ● Extend debugger capabilities

PADTAD Filippo Gioachin - UIUC Memory Debugging ● Memory problems are typically subtle and hard to trace ● In Charm++ multiple chares reside on the same processor and share the same address space ● Focus – Memory leak – Cross-chare corruption

PADTAD Filippo Gioachin - UIUC Memory view

PADTAD Filippo Gioachin - UIUC Memory Tagging Detect modification to the memory block Associate to each memory block the ID of the owner chare Stack trace of the moment where the block was allocated Linked list: All allocated memory is known by the debugger

PADTAD Filippo Gioachin - UIUC View by Chare ID

PADTAD Filippo Gioachin - UIUC Cross-chare corruption ● A chare should access only to its data structures – Inside a processor the address space is shared – A chare can write some other chare's data ● Associate each chare an ID, and mark all its memory with that ID ● After an entry method, check if the chare modified some memory not belonging to it

PADTAD Filippo Gioachin - UIUC Detecting violations Detect modification to the memory block Associate to each memory block the ID of the owner chare

PADTAD Filippo Gioachin - UIUC Buffer overflow violations ● Utilize the other CRC field to protect the system data laying around the user data ● Detect violations similarly to cross-chare violations

PADTAD Filippo Gioachin - UIUC Performance * M t M: alloc ated mem ory t: interv al betw een meth ods

PADTAD Filippo Gioachin - UIUC Future directions ● Reduce checking time – Reduce frequency of checking ● Check only some entry methods – Reduce amount of memory scanned ● Check only some memory – Reduce time to scan ● Faster error detection codes ● Memory shadowing ● mmap and mprotect – allows detection of reads as well as writes

PADTAD Filippo Gioachin - UIUC Future directions (2) ● Applying technique to real applications ● Presenting results of test to the user – Allow multiple ownership of data blocks – Filter errors (simple warnings) ● Re-execute erroneous code – Roll-back to state before message delivered – Re-run under more detailed debugging – Connected to live record-replay

PADTAD Filippo Gioachin - UIUC Questions? Thank you