Black All good PowerPoint starts with black..

Slides:



Advertisements
Similar presentations
Jean-Christophe Fillion-Robin & Julien Finet Kitware Inc. June 20 th 2011.
Advertisements

Packaging of EPICS-basedControl System Software
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
Julie McEnery1 Installing the ScienceTools The release manager automatically compiles each release of the Science Tools, it creates a set of wrapper scripts.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Unit Testing & Defensive Programming. F-22 Raptor Fighter.
CHAPTER 4: INTRODUCTION TO COMPUTER ORGANIZATION AND PROGRAMMING DESIGN Lec. Ghader Kurdi.
Chapter - 2 What is “GIT” VERSION CONTROL AND GIT BASICS.
WORK ON CLUSTER HYBRILIT E. Aleksandrov 1, D. Belyakov 1, M. Matveev 1, M. Vala 1,2 1 Joint Institute for nuclear research, LIT, Russia 2 Institute for.
Software Tools and Processes Training and Discussion October 16, :00-4:30 p.m. Jim Willenbring.
Trilinos 101: Getting Started with Trilinos November 7, :30-9:30 a.m. Mike Heroux Jim Willenbring.
Created by: Maria Abrahms Modified Date: Classification: How to get it done Contributing to OpenStack.
DTIAtlasBuilder Adrien Kaiser Neuro Image Research and Analysis Laboratories University of North Carolina at Chapel Hill A tool to create an atlas from.
Spack Working Group Outbrief Scalable Tools Workshop 2015 Participants: Todd Gamblin (LLNL), Bernd Mohr (Jülich), Matt Legendre (LLNL), Mark Krentel (Rice),
Git – versioning and managing your software L. Grewe.
Makefiles CISC/QCSE 810. BeamApp and Tests in C++ 5 source code files After any modification, changed source needs to be recompiled all object files need.
A Comparison of Library Tracking Methods in High Performance Computing Computer System Cluster and Networking Summer Institute 2013 Poster Seminar William.
Version control Using Git Version control, using Git1.
(1) A Beginner’s Quick Start to SIMICS. (2) Disclaimer This is a quick start document to help users get set up quickly Does not replace the user guide.
…using Git/Tortoise Git
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Installing CompuCell3D from source Maciej Swat Biocomplexity Institute, Indiana University.
NA-MIC National Alliance for Medical Image Computing Slicer Building and Deployment Steve Pieper, PhD.
Introduction to GitHub Alex Bigazzi Dec. 4, 2013 ITS Lab GitHub Introduction1.
Installing CompuCell3D from source. Why you might want to install from source? 1.There are no binaries for your platform (e.g. gentoo linux) 2.You want.
Setting up Cygwin Computer Organization I 1 May 2010 ©2010 McQuain Cygwin: getting the setup tool Free, almost complete UNIX environment emulation.
Test Specifications A Specification System for Multi-Platform Test Suite Configuration, Build, and Execution Greg Cooksey.
UHCS 2005, slide 1 About Continuous Integration. UHCS 2005, slide 2 Why do you write Unit Test ? Improve quality/robustness of your code Quick feedback.
Page 1 CMake Trilinos? Roscoe A. Bartlett Department of Optimization & Uncertainty Estimation Esteban J. Guillen Department.
Yannick Patois - Datagrid Software Repository Presentation - March, n° 1 Datagrid Software Repository Presentation CVS, packages and automatic.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Build Tools 1. Building a program for a large project is usually managed by a build tool that controls the various steps involved. These steps may include:
Lab 9 Department of Computer Science and Information Engineering National Taiwan University Lab9 - Debugging I 2014/11/4/ 28 1.
How to configure, build and install Trilinos November 2, :30-9:30 a.m. Jim Willenbring.
GLite build and integration system Building and Packaging Robert HARAKALY
Debugging Lab Antonio Gómez-Iglesias Texas Advanced Computing Center.
Lecture 5 Remotes Sign in on the attendance sheet! Turn in homework at the front!
EGEE-III INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarksEGEE-III INFSO-RI MPI on the grid:
Git workflows: using multiple branches for parallel development SE-2800 Dr. Mark L. Hornick 1.
Patrick Gartung LArSoft Usability Meeting 22 June 2016 Build system explorations: Spack.
Linux on ARM7TDMI or Nothing is as easy as it looks Helicon technologies Ltd. How to run uClinux on NXP LPC22xx.
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 18 – Linking and Libraries.
TUF: Secure Software Updates Justin Cappos NYU Poly Computer Science and Engineering.
Managing Combinatorial Software Installations with Spack
Parrot and ATLAS Connect
The GWB installation directory must be in your Path
Development Environment
Python’s Modules Noah Black.
Developing and Distributing Cross-Platform Software with PyInstaller
The 500 builds of 300 applications in the HeLmod repository will at least get you started on a full suite of scientific applications Aaron Kitzmiller,
How to link a test to a launcher (in this case a shell launcher)
A Simple Introduction to Git: a distributed version-control system
CEPC Software Management Proposal
Discussion 11 Final Project / Git.
Version control, using Git
Work report Xianghu Zhao Nov 11, 2014.
Releases and developments
Revision Control, Automated Testing and Docker RSE Conference 2017
CVS revisions UML diagram
Advanced TAU Commander
Design and Programming
UNITY TEAM PROJECT TOPICS: [1]. Unity Collaborate
CSE 303 Concepts and Tools for Software Development
Git CS Fall 2018.
Extending Languages.
Cygwin: getting the setup tool
Carthage ios 8 onwards Dependency manager that streamlines the process of integrating the libraries into the project.
Using GitHub for Papyrus Models Jessie Jewitt – OAM Technology Consulting/ ARM Inc. January 29th, 2018.
Presentation transcript:

Black All good PowerPoint starts with black.

Compiling VTK-m/Ascent on Stampede2 with Spack Kenneth Moreland, Sandia National Laboratories

Issue 1: Spack sets up compilers wrong Spack finds gcc 6.3.0 and Intel 18.0.2 in your path But, both rely on their respective module to be loaded So, you download Spack, ask it to install a simple package (like libelf), and it fails with an error like configure: error: installation or configuration problem: C compiler cannot create executables.

Issue 1 Solution: Add module to compiler configuration Apparently Spack gets it on some systems (like Cray); not Stampede This should be pushed back to the Spack team From compilers.yaml: - compiler: environment: {} extra_rpaths: [] flags: {} modules: [intel/18.0.2] operating_system: centos7 paths: cc: /opt/intel/compilers_and_libraries_2018.2.199/linux/bin/intel64/icc cxx: /opt/intel/compilers_and_libraries_2018.2.199/linux/bin/intel64/icpc f77: /opt/intel/compilers_and_libraries_2018.2.199/linux/bin/intel64/ifort fc: /opt/intel/compilers_and_libraries_2018.2.199/linux/bin/intel64/ifort spec: intel@18.0.2 target: x86_64

Issue 2: Spack wants to compile CMake The point of CMake is that you have one thing that can manage configuration Spack wants to compile its own version, which requires the installation of about a dozen dependent packages (including autotools), which defeats the purpose Also failed to build because gnutils couldn’t seem to get guile correctly Many HPC systems (including Stampede) have CMake installed, and it is trivial to download and use your own binary (for x86 architecture)

Issue 2 Solution: Configure external packages for CMake You can point to either an external module or executable for CMake Configuration is in packages.yaml It would save a lot of people a lot of time if Spack did this automatically. CMake is ubiquitous enough to have a special CMake set up like compilers packages: cmake: modules: cmake@3.10.2: cmake/3.10.2 paths: cmake@3.9.6: ~/local/stow/cmake-3.9.6-Linux-x86_64 buildable: False

Issue 3: Spack Intel-mpi configuration broken for Stampede Spack makes some assumptions about how Intel-mpi is installed that is violated with Stampede Cyrus can provide more details

Issue 3 Solution: Workaround by setting up mvapich2 to use Intel-mpi Thanks to Cyrus for the solution! Spack has an open issue to address this https://github.com/spack/spack/issues/11522 https://github.com/spack/spack/pull/10753 In packages.yaml: packages: all: providers: mpi: - mvapich2 mvapich2: buildable: False modules: mvapich2: impi

Issue 4: Executables compiled with Intel compiler module need module loaded to run Ascent needs the python module and several other related modules If python is compiled with the intel compiler on Stampede2 (with, for example, the intel/18.0.2 module), you need that compiler module loaded to run Otherwise you get: error while loading shared libraries: libimf.so: cannot open shared object file: No such file or directory This happens in modules like py-setuptools, which run python scripts but do not compile anything Nothing compiled, no compiler module loaded

Issue 4 Solution: Set compiler configuration to add rpath to compiler-provided libraries Using --dirty flag to spack might also work Open Spack issue: https://github.com/spack/spack/issues/11582 - compiler: environment: {} extra_rpaths: - /opt/intel/compilers_and_libraries_2018.2.199/linux/compiler/lib/intel64_lin flags: {} modules: [intel/18.0.2] operating_system: centos7 paths: cc: /opt/intel/compilers_and_libraries_2018.2.199/linux/bin/intel64/icc cxx: /opt/intel/compilers_and_libraries_2018.2.199/linux/bin/intel64/icpc f77: /opt/intel/compilers_and_libraries_2018.2.199/linux/bin/intel64/ifort fc: /opt/intel/compilers_and_libraries_2018.2.199/linux/bin/intel64/ifort spec: intel@18.0.2 target: x86_64

Issue 5: Ascent package in Spack does not work Ironic since Ascent source build scripts use Spack for compiling But the Ascent build wants to pull its own version of Spack and attempt to add patches to get it to work in known places I don’t want to do that because I want my Ascent build to work with other things I build with Spack It is easier to fix Spack issues in my own environment rather than Ascent’s I would rather submit fixes to Spack and have it fixed for everyone than submit to Ascent and have it work only for Ascent builds Main issue is that Ascent requires specific commits for VTK-m, which are not captured in the Spack repository

Issue 5 Solution: WIP I was working on attempting to set up a version 0.4.0 package of Ascent Requires setting up dependencies to correct versions of VTK-m and VTK-h These might be “random” git commits. This should be easier to manage once VTK-m and VTK-h merge.