Page 1 CMake Trilinos? Roscoe A. Bartlett Department of Optimization & Uncertainty Estimation Esteban J. Guillen Department.

Slides:



Advertisements
Similar presentations
Conclusion Kenneth Moreland Sandia National Laboratories Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company,
Advertisements

ITK-Overview Insight Software Consortium. What is ITK Image Processing Segmentation Registration No Graphical User Interface (GUI) No Visualization.
Lecture 3 Getting Started with ITK!. Goals for this lecture Learn how to use Cmake Build ITK Example programs that use ITK.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
Page 1 APP + Trilinos Integration Status, Opportunities, and Challenges Roscoe A. Bartlett Department of Optimization.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
Software Asset Management at Sandia National Laboratories NLIT Summit 2009 June 2, 2009 Ramona K. Gallegos Programmer/Analyst Andrew H. Steele Programmer/Analyst.
Server-Side vs. Client-Side Scripting Languages
Source Code Version Management and Configuration Control Art Amezcua Status 11/5/2007.
PaperCut NG Chris Dance. Copyright © PaperCut Software Pty. Ltd. 2 Overview Overview of PaperCut NG Why we offer a Mac Version The story of our.
Software Process, CMake, Dashboards, CPack Bill Hoffman Kitware, Inc.
Linux Operations and Administration
Trilinos Coding and Documentation Guidelines Roscoe A. Bartlett Trilinos Software Engineering Technologies and Integration Lead Computer Science and Mathematics.
Crystal Yellow Agile Software Methodology For ParaView Development Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin.
Page 1 Trilinos Software Engineering Technologies and Integration Capability Area Overview Roscoe A. Bartlett Trilinos Software Engineering Technologies.
Page 1 Trilinos Software Engineering Technologies and Integration Capability Area Overview Roscoe A. Bartlett Department.
CCA Port, Component & Application Build Skeleton Templates “A new script toolkit for generating CCA build skeletons” Torsten Wilde and James Kohl Oak Ridge.
SAINT2002 Towards Next Generation January 31, 2002 Ly Sauer Sandia National Laboratories Sandia is a multiprogram laboratory operated by Sandia Corporation,
Trilinos Strategic (and Tactical) Planning Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United.
Software Tools and Processes Training and Discussion October 16, :00-4:30 p.m. Jim Willenbring.
Trilinos User Group Meeting Thursday, November 8 th, 2007 Timothy M. Shead (1424) Danny Dunlavy (1415) SAND P Sandia is a multiprogram laboratory.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
Trilinos: From a User’s Perspective Russell Hooper Nov. 7, 2007 SAND P Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed.
Visual Linker Final presentation.
Page 1 Trilinos Usage of CMake/CTest/CDash Roscoe A. Bartlett Department of Optimization & Uncertainty Estimation Sandia.
Page 1 Trilinos Software Engineering Status and Future Issues Roscoe A. Bartlett Department of Optimization & Uncertainty.
Page 1 Trilinos Software Engineering Technologies and Integration Capability Area Overview Roscoe A. Bartlett Department.
Page 1 Embedded Sensitivities and Optimization From Research to Applications Roscoe A. Bartlett Department of Optimization & Uncertainty Estimation Sandia.
Page 1 Trilinos Release Improvement Issues Roscoe A. Bartlett Department of Optimization & Uncertainty Estimation Trilinos.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
CMake For Trilinos Developers
NA-MIC National Alliance for Medical Image Computing Slicer Building and Deployment Steve Pieper, PhD.
1Offline Weekly Meeting May May 2006 AliRoot Build Integration and (Testing) System Peter Hristov Vagner Morais.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
CMake refactoring P. Hristov 19/03/2014. History I  Recursive makefiles (F.Carminati):  Problems in dependencies  Slow  "Recursive Makefiles.
Programming with Visual C++ A short review of the process.
Achieving High Software Reliability Using a Faster, Easier and Cheaper Method NASA OSMA SAS '01 September 5-7, 2001 Taghi M. Khoshgoftaar The Software.
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.
SciDAC SSS Quarterly Report Sandia Labs August 27, 2004 William McLendon Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed.
Programming with Visual Studio 2005.NET A short review of the process.
Programming with Visual Studio.NET A short review of the process.
LAMMPS Users’ Workshop
Semi-Automatic patch upgrade kit
New Features in ML 2004 Trilinos Users Group Meeting November 2-4, 2004 Jonathan Hu, Ray Tuminaro, Marzio Sala, Michael Gee, Haim Waisman Sandia is a multiprogram.
Page 1 Almost Continuous Integration for the Co-Development of Highly Integrated Applications and Third Party Libraries Roscoe A. Bartlett
Trilinos Strategic (and Tactical) Planning Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United.
Site Report DOECGF April 26, 2011 W. Alan Scott Sandia National Laboratories Sandia National Laboratories is a multi-program laboratory managed and operated.
ParaView III Software Methodology Update Where to now November 29, 2006 John Greenfield Sandia is a multiprogram laboratory operated by Sandia Corporation,
Yannick Patois - Datagrid Software Repository Presentation - March, n° 1 Datagrid Software Repository Presentation CVS, packages and automatic.
Photos placed in horizontal position with even amount of white space between photos and header Sandia National Laboratories is a multi-program laboratory.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
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:
A S P. Outline  The introduction of ASP  Why we choose ASP  How ASP works  Basic syntax rule of ASP  ASP’S object model  Limitations of ASP  Summary.
CLHEP Infrastructure Improvements CHEP 2004 Lynn Garren, FNAL and Andreas Pfeiffer, CERN.
Virtual Directory Services and Directory Synchronization May 13 th, 2008 Bill Claycomb Computer Systems Analyst Infrastructure Computing Systems Department.
INFSOM-RI WP3: WP3: Software configuration tools and methodologies Status Report ETICS All-Hands – 23 May 2007 E. Ronchieri.
SciDAC SSS Quarterly Report Sandia Labs January 25, 2005 William McLendon Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed.
Guide To Develop Mobile Apps With Titanium. Agenda Overview Installation of Platform SDKs Pros of Appcelerator Titanium Cons of Appcelerator Titanium.
CMake: Experience in ALICE P. Hristov 19/06/12. History I Recursive makefiles (F.Carminati): – Problems in dependencies – Slow "Recursive Makefiles.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
CMake - Cross-Platform Make R. Douglas Barbieri Made to Order Software Corporation.
Build and Test system for FairRoot
PowerShell Introduction Copyright © 2016 – Curt Hill.
Transitioning VisIt to CMake
Cmake Primer.
P Almost Continuous Integration for the Co-Development of Highly Integrated Applications and Third Party Libraries Roscoe A. Bartlett
CMPE 135: Object-Oriented Analysis and Design March 14 Class Meeting
Black All good PowerPoint starts with black..
Presentation transcript:

Page 1 CMake Trilinos? Roscoe A. Bartlett Department of Optimization & Uncertainty Estimation Esteban J. Guillen Department of Information Engineering Sandia National Laboratories Trilinos User Group Meeting, October 21, 2008 Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy under contract DE-AC04-94AL P

Page 2 Outline What is CMake? User advantages in switching Trilinos to CMake Configuring, building, and installing Trilinos with CMake on Unix systems Native Microsoft Windows support –Self-extracting installer for Trilinos –Visual C++ project files and Windows CMake GUI

Page 3 Overview of CMake CMake = “Cross-platform Make” CMake: –Build system primarily for C/C++ code –Front-ends to configure a software package Command-line, Scripts, CURSES, GUIs –Back-ends that build code Unix Makefiles, MS Visual C++ Projects, Eclipse Projects,... –Packaging and installing Tar/gzip, Windows self-extracting installers, PackageMaker, RPM,... Platforms and usage: –Platforms: Unix/Linux, MAC OSX, MS Windows, AIX, IRIX,... –Internal Sandia use: VTK/Titan, ParaView, ThreatView,... –External use: KDE, MySql, MiKTeX, (and many many more).. CMake is a full featured mature build system!

Page 4 User advantages in switching Trilinos to CMake? Provide native support for MS Windows –Visual C++ projects –GUI binary installers Better user feedback for configuration errors Better support for shared libraries on many platforms More packaging and installation options Easier configuration for complex package dependencies

Page 5 Current Status of Trilinos/CMake Our detailed evaluation of CMake for Trilinos is finished: –Roscoe A. Bartlett, Daniel Dunlavy, Guillen Esteban, and Tim Shead. Trilinos CMake Evaluation. SAND2008-xxxx, October We have a nearly complete CMake build system design in Trilinos Dev Current CMake enabled packages: –Teuchos, RTOp, Epetra, Triutils, EpetraExt, Thyra, RBGen Trilinos community close to making a decision to move to CMake?

Page 6 Configuring Trilinos with CMake on Unix/Linux CMake interactive mode: [Not Recommended] $ cmake –i $TRILINOS_HOME CCMake (CURSES): $ ccmake $TRILINOS_HOME CMake script files: $ cmake –S script_file \ $TRILINOS_HOME CMake command-line options: [Recommended] $ cmake –D Trilinos_ENABLE_ALL_PACKAGES:BOOL=ON \ –D Trilinos_ENABLE_TESTS:BOOL=ON... $TRILINOS_HOME

Page 7 Creating a Configuration Script for CMake #!/bin/sh cmake \ -D CMAKE_CXX_FLAGS:STRING="-g -O0 -ansi -pedantic -Wall" \ -D DART_TESTING_TIMEOUT:STRING=600 \ -D Trilinos_ENABLE_NOX:BOOL=ON \ -D Trilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=ON \ -D Trilinos_ENABLE_EXAMPLES:BOOL=ON \ -D Trilinos_ENABLE_TESTS:BOOL=ON \... \ $EXTRA_ARGS \../../../Trilinos $./do-configure –D VEROBSE_CONFIGURE:BOOL=ON $ make –j4 $ ctest $ make install See example scripts: Trilinos/sampleScripts/*cmake

Page 8 Special Configuration Modes for Trilinos Configuring Trilinos to build all packages with all tests and examples: -D Trilinos_ENABLE_ALL_PACKAGES:BOOL=ON -D Trilinos_ENABLE_TESTS:BOOL=ON -D Trilinos_ENABLE_EXAMPLES:BOOL=ON Configuring a package(s) along with all of the packages it can use -D Trilinos_ENABLE_Stratimikos:BOOL=ON -D Trilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=ON -D Trilinos_ENABLE_TESTS:BOOL=ON -D Trilinos_ENABLE_EXAMPLES:BOOL=ON Configuring Trilinos to disable a package(s) and all packages it depends on: -D Trilinos_ENABLE_Stratimikos:BOOL=ON -D Trilinos_ENABLE_Amesos:BOOL=OFF

Page 9 Example: Enabling a Package and All Optional Packages RTOpTeuchosEpetraTriutilsThyraEpetraExt Required Dependence Optional Dependence

Page 10 Example: Enabling a Package and All Optional Packages Configuring Trilinos build directory... Enabling all optional packages for current set of enabled packages Setting Trilinos_ENABLE_EpetraExt=ON because Trilinos_ENABLE_Thyra=ON -- Setting Trilinos_ENABLE_Epetra=ON because Trilinos_ENABLE_Thyra=ON -- Setting Trilinos_ENABLE_Triutils=ON because Trilinos_ENABLE_EpetraExt=ON Enabling all remaining required packages for the current set of enabled packages Setting Trilinos_ENABLE_RTOp=ON because Trilinos_ENABLE_Thyra=ON -- Setting Trilinos_ENABLE_Teuchos=ON because Trilinos_ENABLE_Thyra=ON Enabling all optional intra-package enables that can be if both sets of packages are enabled Setting EpetraExt_ENABLE_Triutils=ON since Trilinos_ENABLE_EpetraExt=ON AND Trilinos_ENABLE_Triutils=ON -- Setting Thyra_ENABLE_EpetraExt=ON since Trilinos_ENABLE_Thyra=ON AND Trilinos_ENABLE_EpetraExt=ON -- Setting Thyra_ENABLE_Epetra=ON since Trilinos_ENABLE_Thyra=ON AND Trilinos_ENABLE_Epetra=ON Final set of enabled packages: Teuchos RTOp Epetra Triutils EpetraExt Thyra 6 $./do-configure -DTrilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \ -DTrilinos_ENABLE_Thyra:BOOL=ON \ -DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=ON

Page 11 Trilinos for Windows Users DEMO

Page 12 Checkout Trilinos From CVS

Page 13 Open The CMake GUI

Page 14 Define The Generator

Page 15 Configure

Page 16 Generated VC++ Project Files

Page 17 Visual C++ Solution

Page 18 Binary Installer

Page 19 Installing Trilinos

Page 20 Installed Files

Page 21

Page 22 Executing The Epetra Example From VC++

Page 23 Future for CMake Trilinos? Trilinos to start switching over to CMake immediately? Provide prototype versions of CMake build sytem in Trilinos 9.0.x minor releases? Options for next major Trilinos release (March 2009?) –A) Maintain full Autotools build system and only provide partial support for CMake build system? (Already done) –B) Full support for CMake build system for all released Trilinos packages and maintain basic Autotools build system for library install only? (Most likely) –C) Full support for CMake build system for all released Trilinos packages and drop Autotools support? (Least likely) What does the Trilinos user community think about these options?