SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Daniel Waters
 PGO overview
 Practicum objectives
 Details of accomplishments
 Analysis of case study
 Insight gained
Source Compile Instrumented
object
Instrumented
object
Optimized
object
Profile data
Source
Profile
data
Recompile
Input
Output
https://msdn.microsoft.com/en-us/library/aa289170(v=vs.71).aspx
 Code blocks run consecutively are adjacent
in target program
•  better cache optimization, less branching overhead
•  for conditional statements: block placement
•  for iterative statements: loop unrolling
•  for function calls: inlining
 Frequently used variables have contiguous
memory in address space
 Modern supercomputer characteristics
•  Shared file system
•  Distributed memory
•  Multiple processors
 How to prevent one file from being
overwritten by another?
 How to aggregate data?
 Processor IDs are shared within cluster, but
unique within node
•  Include hostname in .profraw file
 Implementation varies based on OS
•  Unix (uname) vs. Windows (gethostname)
•  Header file ensures compatibility with both
 Created script for testing
•  “%h” conversion works from any location in file name
 Modified patch in response to community
feedback
•  Final revision was accepted two weeks ago
 Supercomputing nodes have processes
communicate using MPI
•  Each process is assigned unique rank
 Useful functions
•  MPI_Finalize: called on all processes at end of
program
•  MPI_Reduce: each process sends data to
specified buffer on single root process
 Functions have MPI_* and PMPI_* versions
•  MPI_* is weak symbol: hook additional
functionality
 Give each process flag indicating whether
it should write profiling data
 If MPI is used
1.  Give one process sum of data from all
processes
2.  Set flag only on this process
 Flag is included in same file as
hooked MPI_Finalize so linker will
use new definition
Ensuring Compatibility
Computing environment scenarios
Applications that don’t include MPI still
need MPI_Finalize hook to link
•
•
File Truncation
  Initial version of compiler runtime created
empty profiling data file at program startup
•
MPI_Comm_rank hasn’t been called:
don’t know which processor will be root
Fix by setting flag for file truncation, not
creation
•
Verifying Data Aggregation
  Tested on Livermore Unstructured
Lagrangian Explicit Shock Hydrodynamics
 Ensuring code compatibility for different
operating systems and computing
environments
 Creating test scripts for new functionality
 Enhanced understanding of compilers
 Increased proficiency with Git, CMake,
Unix, MPI, and C programming

Weitere ähnliche Inhalte

Was ist angesagt?

Flink Forward Berlin 2017: Boris Lublinsky, Stavros Kontopoulos - Introducing...
Flink Forward Berlin 2017: Boris Lublinsky, Stavros Kontopoulos - Introducing...Flink Forward Berlin 2017: Boris Lublinsky, Stavros Kontopoulos - Introducing...
Flink Forward Berlin 2017: Boris Lublinsky, Stavros Kontopoulos - Introducing...Flink Forward
 
data Artisans Product Announcement
data Artisans Product Announcementdata Artisans Product Announcement
data Artisans Product AnnouncementFlink Forward
 
Linux principles and philosophy
Linux principles and philosophy Linux principles and philosophy
Linux principles and philosophy salamassh
 
Building Applications with Streams and Snapshots
Building Applications with Streams and SnapshotsBuilding Applications with Streams and Snapshots
Building Applications with Streams and SnapshotsJ On The Beach
 
Flink Forward San Francisco 2018 keynote: Stephan Ewen - "What turns stream p...
Flink Forward San Francisco 2018 keynote: Stephan Ewen - "What turns stream p...Flink Forward San Francisco 2018 keynote: Stephan Ewen - "What turns stream p...
Flink Forward San Francisco 2018 keynote: Stephan Ewen - "What turns stream p...Flink Forward
 
Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version ControlWei-Tsung Su
 
Source code version control and git
Source code version control and git Source code version control and git
Source code version control and git Naseer Khan Noor
 
Flink Forward Berlin 2017: Hao Wu - Large Scale User Behavior Analytics by Flink
Flink Forward Berlin 2017: Hao Wu - Large Scale User Behavior Analytics by FlinkFlink Forward Berlin 2017: Hao Wu - Large Scale User Behavior Analytics by Flink
Flink Forward Berlin 2017: Hao Wu - Large Scale User Behavior Analytics by FlinkFlink Forward
 
Counting Elements in Streams
Counting Elements in StreamsCounting Elements in Streams
Counting Elements in StreamsJamie Grier
 
Advanced process migration with Flowable
Advanced process migration with FlowableAdvanced process migration with Flowable
Advanced process migration with FlowableFlowable
 
Sql scripts in wps t servers
Sql scripts in wps t serversSql scripts in wps t servers
Sql scripts in wps t servers52North
 
Stephan Ewen - Experiences running Flink at Very Large Scale
Stephan Ewen -  Experiences running Flink at Very Large ScaleStephan Ewen -  Experiences running Flink at Very Large Scale
Stephan Ewen - Experiences running Flink at Very Large ScaleVerverica
 
Kubernetes + Operator + PaaSTA = Flink @ Yelp - Antonio Verardi, Yelp
Kubernetes + Operator + PaaSTA = Flink @ Yelp -  Antonio Verardi, YelpKubernetes + Operator + PaaSTA = Flink @ Yelp -  Antonio Verardi, Yelp
Kubernetes + Operator + PaaSTA = Flink @ Yelp - Antonio Verardi, YelpFlink Forward
 
Application Deployment Architecture
Application Deployment ArchitectureApplication Deployment Architecture
Application Deployment ArchitectureSaurav Basu
 
Modern Stream Processing With Apache Flink @ GOTO Berlin 2017
Modern Stream Processing With Apache Flink @ GOTO Berlin 2017Modern Stream Processing With Apache Flink @ GOTO Berlin 2017
Modern Stream Processing With Apache Flink @ GOTO Berlin 2017Till Rohrmann
 
From Apache Flink® 1.3 to 1.4
From Apache Flink® 1.3 to 1.4From Apache Flink® 1.3 to 1.4
From Apache Flink® 1.3 to 1.4Till Rohrmann
 
Fault Tolerance and Job Recovery in Apache Flink @ FlinkForward 2015
Fault Tolerance and Job Recovery in Apache Flink @ FlinkForward 2015Fault Tolerance and Job Recovery in Apache Flink @ FlinkForward 2015
Fault Tolerance and Job Recovery in Apache Flink @ FlinkForward 2015Till Rohrmann
 

Was ist angesagt? (20)

Flink Forward Berlin 2017: Boris Lublinsky, Stavros Kontopoulos - Introducing...
Flink Forward Berlin 2017: Boris Lublinsky, Stavros Kontopoulos - Introducing...Flink Forward Berlin 2017: Boris Lublinsky, Stavros Kontopoulos - Introducing...
Flink Forward Berlin 2017: Boris Lublinsky, Stavros Kontopoulos - Introducing...
 
data Artisans Product Announcement
data Artisans Product Announcementdata Artisans Product Announcement
data Artisans Product Announcement
 
Linux principles and philosophy
Linux principles and philosophy Linux principles and philosophy
Linux principles and philosophy
 
Building Applications with Streams and Snapshots
Building Applications with Streams and SnapshotsBuilding Applications with Streams and Snapshots
Building Applications with Streams and Snapshots
 
Flink Forward San Francisco 2018 keynote: Stephan Ewen - "What turns stream p...
Flink Forward San Francisco 2018 keynote: Stephan Ewen - "What turns stream p...Flink Forward San Francisco 2018 keynote: Stephan Ewen - "What turns stream p...
Flink Forward San Francisco 2018 keynote: Stephan Ewen - "What turns stream p...
 
static libraries and dynamic libraries
static libraries and dynamic librariesstatic libraries and dynamic libraries
static libraries and dynamic libraries
 
Convert nsf to pst
Convert nsf to pst Convert nsf to pst
Convert nsf to pst
 
Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version Control
 
Source code version control and git
Source code version control and git Source code version control and git
Source code version control and git
 
Flink Forward Berlin 2017: Hao Wu - Large Scale User Behavior Analytics by Flink
Flink Forward Berlin 2017: Hao Wu - Large Scale User Behavior Analytics by FlinkFlink Forward Berlin 2017: Hao Wu - Large Scale User Behavior Analytics by Flink
Flink Forward Berlin 2017: Hao Wu - Large Scale User Behavior Analytics by Flink
 
Counting Elements in Streams
Counting Elements in StreamsCounting Elements in Streams
Counting Elements in Streams
 
Advanced process migration with Flowable
Advanced process migration with FlowableAdvanced process migration with Flowable
Advanced process migration with Flowable
 
Sql scripts in wps t servers
Sql scripts in wps t serversSql scripts in wps t servers
Sql scripts in wps t servers
 
Stephan Ewen - Experiences running Flink at Very Large Scale
Stephan Ewen -  Experiences running Flink at Very Large ScaleStephan Ewen -  Experiences running Flink at Very Large Scale
Stephan Ewen - Experiences running Flink at Very Large Scale
 
Kubernetes + Operator + PaaSTA = Flink @ Yelp - Antonio Verardi, Yelp
Kubernetes + Operator + PaaSTA = Flink @ Yelp -  Antonio Verardi, YelpKubernetes + Operator + PaaSTA = Flink @ Yelp -  Antonio Verardi, Yelp
Kubernetes + Operator + PaaSTA = Flink @ Yelp - Antonio Verardi, Yelp
 
Reactive programming intro
Reactive programming introReactive programming intro
Reactive programming intro
 
Application Deployment Architecture
Application Deployment ArchitectureApplication Deployment Architecture
Application Deployment Architecture
 
Modern Stream Processing With Apache Flink @ GOTO Berlin 2017
Modern Stream Processing With Apache Flink @ GOTO Berlin 2017Modern Stream Processing With Apache Flink @ GOTO Berlin 2017
Modern Stream Processing With Apache Flink @ GOTO Berlin 2017
 
From Apache Flink® 1.3 to 1.4
From Apache Flink® 1.3 to 1.4From Apache Flink® 1.3 to 1.4
From Apache Flink® 1.3 to 1.4
 
Fault Tolerance and Job Recovery in Apache Flink @ FlinkForward 2015
Fault Tolerance and Job Recovery in Apache Flink @ FlinkForward 2015Fault Tolerance and Job Recovery in Apache Flink @ FlinkForward 2015
Fault Tolerance and Job Recovery in Apache Flink @ FlinkForward 2015
 

Andere mochten auch

הזחל הרעב
הזחל הרעבהזחל הרעב
הזחל הרעבsim1972
 
Soluciones de negocio, seguridad y tecnología para afrontar la protección de ...
Soluciones de negocio, seguridad y tecnología para afrontar la protección de ...Soluciones de negocio, seguridad y tecnología para afrontar la protección de ...
Soluciones de negocio, seguridad y tecnología para afrontar la protección de ...Kandu Tapia
 
Carlos Urrejola Villagra
Carlos Urrejola VillagraCarlos Urrejola Villagra
Carlos Urrejola Villagradrockane
 
Ana Checa
Ana ChecaAna Checa
Ana ChecaAnukita
 
OíDo Con Sentido Radio Digital
OíDo Con Sentido Radio DigitalOíDo Con Sentido Radio Digital
OíDo Con Sentido Radio Digitalcampus party
 
La conversion des femmes à l’islam en France
La conversion des femmes à l’islam en FranceLa conversion des femmes à l’islam en France
La conversion des femmes à l’islam en FranceLP Loïc
 
Transcript for UIR Qin Yutian
Transcript for UIR Qin YutianTranscript for UIR Qin Yutian
Transcript for UIR Qin YutianYutian Qin
 
Derivadas parciales. Oliverio Ramos Paradelo, Diego prada paradelo..
Derivadas parciales. Oliverio Ramos Paradelo, Diego prada paradelo..Derivadas parciales. Oliverio Ramos Paradelo, Diego prada paradelo..
Derivadas parciales. Oliverio Ramos Paradelo, Diego prada paradelo..Oliver Ramos Paradelo
 
Club AtléTico Excursionista
Club AtléTico ExcursionistaClub AtléTico Excursionista
Club AtléTico Excursionistaguest275e0a5
 
13 comprimir archivos
13 comprimir archivos13 comprimir archivos
13 comprimir archivosmcherres
 
Creacion Compilados De Sl En Cd
Creacion Compilados De Sl En CdCreacion Compilados De Sl En Cd
Creacion Compilados De Sl En Cdcampus party
 

Andere mochten auch (18)

הזחל הרעב
הזחל הרעבהזחל הרעב
הזחל הרעב
 
Soluciones de negocio, seguridad y tecnología para afrontar la protección de ...
Soluciones de negocio, seguridad y tecnología para afrontar la protección de ...Soluciones de negocio, seguridad y tecnología para afrontar la protección de ...
Soluciones de negocio, seguridad y tecnología para afrontar la protección de ...
 
Carlos Urrejola Villagra
Carlos Urrejola VillagraCarlos Urrejola Villagra
Carlos Urrejola Villagra
 
Ana Checa
Ana ChecaAna Checa
Ana Checa
 
Halloween IES Virgen de la cabeza
Halloween IES Virgen de la cabezaHalloween IES Virgen de la cabeza
Halloween IES Virgen de la cabeza
 
OíDo Con Sentido Radio Digital
OíDo Con Sentido Radio DigitalOíDo Con Sentido Radio Digital
OíDo Con Sentido Radio Digital
 
La conversion des femmes à l’islam en France
La conversion des femmes à l’islam en FranceLa conversion des femmes à l’islam en France
La conversion des femmes à l’islam en France
 
Colegio nacional nicolas esguerra
Colegio nacional nicolas  esguerraColegio nacional nicolas  esguerra
Colegio nacional nicolas esguerra
 
Transcript for UIR Qin Yutian
Transcript for UIR Qin YutianTranscript for UIR Qin Yutian
Transcript for UIR Qin Yutian
 
Derivadas parciales. Oliverio Ramos Paradelo, Diego prada paradelo..
Derivadas parciales. Oliverio Ramos Paradelo, Diego prada paradelo..Derivadas parciales. Oliverio Ramos Paradelo, Diego prada paradelo..
Derivadas parciales. Oliverio Ramos Paradelo, Diego prada paradelo..
 
Plantilla proyecto de_vida
Plantilla proyecto de_vidaPlantilla proyecto de_vida
Plantilla proyecto de_vida
 
Club AtléTico Excursionista
Club AtléTico ExcursionistaClub AtléTico Excursionista
Club AtléTico Excursionista
 
13 comprimir archivos
13 comprimir archivos13 comprimir archivos
13 comprimir archivos
 
Cartao Easy Run
Cartao Easy RunCartao Easy Run
Cartao Easy Run
 
Musiquem Poemes
Musiquem PoemesMusiquem Poemes
Musiquem Poemes
 
Nature Art Exhibition Event Postcard
Nature Art Exhibition Event PostcardNature Art Exhibition Event Postcard
Nature Art Exhibition Event Postcard
 
Creacion Compilados De Sl En Cd
Creacion Compilados De Sl En CdCreacion Compilados De Sl En Cd
Creacion Compilados De Sl En Cd
 
RPM Imports. Catálogo 2015.
RPM Imports. Catálogo 2015.RPM Imports. Catálogo 2015.
RPM Imports. Catálogo 2015.
 

Ähnlich wie pracfinal

IntelliJ IDEA Architecture and Performance
IntelliJ IDEA Architecture and PerformanceIntelliJ IDEA Architecture and Performance
IntelliJ IDEA Architecture and Performanceintelliyole
 
Testing data and metadata backends with ClawIO
Testing data and metadata backends with ClawIOTesting data and metadata backends with ClawIO
Testing data and metadata backends with ClawIOHugo González Labrador
 
Automation Framework 042009 V2
Automation Framework   042009  V2Automation Framework   042009  V2
Automation Framework 042009 V2guestb66d91
 
Deep Dive Azure Functions - Global Azure Bootcamp 2019
Deep Dive Azure Functions - Global Azure Bootcamp 2019Deep Dive Azure Functions - Global Azure Bootcamp 2019
Deep Dive Azure Functions - Global Azure Bootcamp 2019Andrea Tosato
 
Lec+3-Introduction-to-Distributed-Systems.pdf
Lec+3-Introduction-to-Distributed-Systems.pdfLec+3-Introduction-to-Distributed-Systems.pdf
Lec+3-Introduction-to-Distributed-Systems.pdfsamaghorab
 
AOUG_11Nov2016_Challenges_with_EBS12_2
AOUG_11Nov2016_Challenges_with_EBS12_2AOUG_11Nov2016_Challenges_with_EBS12_2
AOUG_11Nov2016_Challenges_with_EBS12_2Sean Braymen
 
KACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting OverviewKACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting OverviewDell World
 
Reproducibility in artificial intelligence
Reproducibility in artificial intelligenceReproducibility in artificial intelligence
Reproducibility in artificial intelligenceCarlos Toxtli
 
cloud computing preservity
cloud computing preservitycloud computing preservity
cloud computing preservitychennuruvishnu
 
GFS - Google File System
GFS - Google File SystemGFS - Google File System
GFS - Google File Systemtutchiio
 
Asynchronous Python with Twisted
Asynchronous Python with TwistedAsynchronous Python with Twisted
Asynchronous Python with TwistedAdam Englander
 
[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategiesrahulbot
 
Introduction to Business Processes 3.7
Introduction to Business Processes 3.7Introduction to Business Processes 3.7
Introduction to Business Processes 3.7StephenKardian
 
Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0Massimo Bonanni
 
Ready, set, go! An introduction to the Go programming language
Ready, set, go! An introduction to the Go programming languageReady, set, go! An introduction to the Go programming language
Ready, set, go! An introduction to the Go programming languageRTigger
 
VMware ThinApp 4.5
VMware ThinApp 4.5VMware ThinApp 4.5
VMware ThinApp 4.5netlogix
 
EclipseCon Eu 2012 - Build your own System Engineering workbench
EclipseCon Eu 2012 - Build your own System Engineering workbenchEclipseCon Eu 2012 - Build your own System Engineering workbench
EclipseCon Eu 2012 - Build your own System Engineering workbenchmelbats
 

Ähnlich wie pracfinal (20)

NiW: Notebooks into Workflows
NiW: Notebooks into WorkflowsNiW: Notebooks into Workflows
NiW: Notebooks into Workflows
 
IntelliJ IDEA Architecture and Performance
IntelliJ IDEA Architecture and PerformanceIntelliJ IDEA Architecture and Performance
IntelliJ IDEA Architecture and Performance
 
Mannu_Kumar_CV
Mannu_Kumar_CVMannu_Kumar_CV
Mannu_Kumar_CV
 
Testing data and metadata backends with ClawIO
Testing data and metadata backends with ClawIOTesting data and metadata backends with ClawIO
Testing data and metadata backends with ClawIO
 
Unit V.pptx
Unit V.pptxUnit V.pptx
Unit V.pptx
 
Automation Framework 042009 V2
Automation Framework   042009  V2Automation Framework   042009  V2
Automation Framework 042009 V2
 
Deep Dive Azure Functions - Global Azure Bootcamp 2019
Deep Dive Azure Functions - Global Azure Bootcamp 2019Deep Dive Azure Functions - Global Azure Bootcamp 2019
Deep Dive Azure Functions - Global Azure Bootcamp 2019
 
Lec+3-Introduction-to-Distributed-Systems.pdf
Lec+3-Introduction-to-Distributed-Systems.pdfLec+3-Introduction-to-Distributed-Systems.pdf
Lec+3-Introduction-to-Distributed-Systems.pdf
 
AOUG_11Nov2016_Challenges_with_EBS12_2
AOUG_11Nov2016_Challenges_with_EBS12_2AOUG_11Nov2016_Challenges_with_EBS12_2
AOUG_11Nov2016_Challenges_with_EBS12_2
 
KACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting OverviewKACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting Overview
 
Reproducibility in artificial intelligence
Reproducibility in artificial intelligenceReproducibility in artificial intelligence
Reproducibility in artificial intelligence
 
cloud computing preservity
cloud computing preservitycloud computing preservity
cloud computing preservity
 
GFS - Google File System
GFS - Google File SystemGFS - Google File System
GFS - Google File System
 
Asynchronous Python with Twisted
Asynchronous Python with TwistedAsynchronous Python with Twisted
Asynchronous Python with Twisted
 
[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies
 
Introduction to Business Processes 3.7
Introduction to Business Processes 3.7Introduction to Business Processes 3.7
Introduction to Business Processes 3.7
 
Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0
 
Ready, set, go! An introduction to the Go programming language
Ready, set, go! An introduction to the Go programming languageReady, set, go! An introduction to the Go programming language
Ready, set, go! An introduction to the Go programming language
 
VMware ThinApp 4.5
VMware ThinApp 4.5VMware ThinApp 4.5
VMware ThinApp 4.5
 
EclipseCon Eu 2012 - Build your own System Engineering workbench
EclipseCon Eu 2012 - Build your own System Engineering workbenchEclipseCon Eu 2012 - Build your own System Engineering workbench
EclipseCon Eu 2012 - Build your own System Engineering workbench
 

pracfinal

  • 2.  PGO overview  Practicum objectives  Details of accomplishments  Analysis of case study  Insight gained
  • 3. Source Compile Instrumented object Instrumented object Optimized object Profile data Source Profile data Recompile Input Output https://msdn.microsoft.com/en-us/library/aa289170(v=vs.71).aspx
  • 4.  Code blocks run consecutively are adjacent in target program •  better cache optimization, less branching overhead •  for conditional statements: block placement •  for iterative statements: loop unrolling •  for function calls: inlining  Frequently used variables have contiguous memory in address space
  • 5.
  • 6.  Modern supercomputer characteristics •  Shared file system •  Distributed memory •  Multiple processors  How to prevent one file from being overwritten by another?  How to aggregate data?
  • 7.  Processor IDs are shared within cluster, but unique within node •  Include hostname in .profraw file  Implementation varies based on OS •  Unix (uname) vs. Windows (gethostname) •  Header file ensures compatibility with both  Created script for testing •  “%h” conversion works from any location in file name  Modified patch in response to community feedback •  Final revision was accepted two weeks ago
  • 8.  Supercomputing nodes have processes communicate using MPI •  Each process is assigned unique rank  Useful functions •  MPI_Finalize: called on all processes at end of program •  MPI_Reduce: each process sends data to specified buffer on single root process  Functions have MPI_* and PMPI_* versions •  MPI_* is weak symbol: hook additional functionality
  • 9.  Give each process flag indicating whether it should write profiling data  If MPI is used 1.  Give one process sum of data from all processes 2.  Set flag only on this process  Flag is included in same file as hooked MPI_Finalize so linker will use new definition
  • 10. Ensuring Compatibility Computing environment scenarios Applications that don’t include MPI still need MPI_Finalize hook to link • •
  • 11. File Truncation   Initial version of compiler runtime created empty profiling data file at program startup • MPI_Comm_rank hasn’t been called: don’t know which processor will be root Fix by setting flag for file truncation, not creation •
  • 13.   Tested on Livermore Unstructured Lagrangian Explicit Shock Hydrodynamics
  • 14.  Ensuring code compatibility for different operating systems and computing environments  Creating test scripts for new functionality  Enhanced understanding of compilers  Increased proficiency with Git, CMake, Unix, MPI, and C programming