Spack Documentation Release 0.9

Total Page:16

File Type:pdf, Size:1020Kb

Spack Documentation Release 0.9 Spack Documentation Release 0.9 Todd Gamblin August 31, 2016 Contents 1 Table of Contents 3 1.1 Feature overview.............................................3 1.2 Getting Started..............................................5 1.3 Basic usage................................................6 1.4 Packaging Guide............................................. 40 1.5 Mirrors.................................................. 80 1.6 Configuration............................................... 83 1.7 Developer Guide............................................. 86 1.8 Using Spack for CMake-based Development.............................. 90 1.9 Command index............................................. 92 1.10 Package List............................................... 93 1.11 spack package.............................................. 335 2 Indices and tables 453 Python Module Index 455 i ii Spack Documentation, Release 0.9 Spack is a package management tool designed to support multiple versions and configurations of software on a wide variety of platforms and environments. It was designed for large supercomputing centers, where many users and application teams share common installations of software on clusters with exotic architectures, using libraries that do not have a standard ABI. Spack is non-destructive: installing a new version does not break existing installations, so many configurations can coexist on the same system. Most importantly, Spack is simple. It offers a simple spec syntax so that users can specify versions and configuration options concisely. Spack is also simple for package authors: package files are written in pure Python, and specs allow package authors to maintain a single file for many different builds of the same package. See the Feature overview for examples and highlights. Get spack from the github repository and install your first package: $ git clone https://github.com/llnl/spack.git $ cd spack/bin $ ./spack install libelf If you’re new to spack and want to start using it, see Getting Started, or refer to the full manual below. Contents 1 Spack Documentation, Release 0.9 2 Contents CHAPTER 1 Table of Contents 1.1 Feature overview This is a high-level overview of features that make Spack different from other package managers and port systems. 1.1.1 Simple package installation Installing the default version of a package is simple. This will install the latest version of the mpileaks package and all of its dependencies: $ spack install mpileaks 1.1.2 Custom versions & configurations Spack allows installation to be customized. Users can specify the version, build compiler, compile-time options, and cross-compile platform, all on the command line. # Install a particular version by appending @ $ spack install [email protected] # Specify a compiler(and its version), with % $ spack install [email protected] %[email protected] # Add special compile-time options by name $ spack install [email protected] %[email protected] debug=True # Add special boolean compile-time options with + $ spack install [email protected] %[email protected] +debug # Add compiler flags using the conventional names $ spack install [email protected] %[email protected] cppflags=\"-O3 -floop-block\" # Cross-compile for a different architecture with arch= $ spack install [email protected] arch=bgqos_0 Users can specify as many or few options as they care about. Spack will fill in the unspecified values with sensible defaults. The two listed syntaxes for variants are identical when the value is boolean. 3 Spack Documentation, Release 0.9 1.1.3 Customize dependencies Spack allows dependencies of a particular installation to be customized extensively. Suppose that mpileaks depends indirectly on libelf and libdwarf. Using ^, users can add custom configurations for the dependencies: # Install mpileaks and link it with specific versions of libelf and libdwarf $ spack install [email protected] %[email protected] +debug ^[email protected] ^libdwarf@20130729+debug 1.1.4 Non-destructive installs Spack installs every unique package/dependency configuration into its own prefix, so new installs will not break existing ones. 1.1.5 Packages can peacefully coexist Spack avoids library misconfiguration by using RPATH to link dependencies. When a user links a library or runs a program, it is tied to the dependencies it was built with, so there is no need to manipulate LD_LIBRARY_PATH at runtime. 1.1.6 Creating packages is easy To create a new packages, all Spack needs is a URL for the source archive. The spack create command will create a boilerplate package file, and the package authors can fill in specific build steps in pure Python. For example, this command: $ spack create http://www.mr511.de/software/libelf-0.8.13.tar.gz creates a simple python file: from spack import * class Libelf(Package): """FIXME: Put a proper description of your package here.""" # FIXME: Add a proper url for your package's homepage here. homepage="http://www.example.com" url="http://www.mr511.de/software/libelf-0.8.13.tar.gz" version('0.8.13','4136d7b4c04df68b686570afa26988ac') # FIXME: Add dependencies if required. # depends_on('foo') def install(self, spec, prefix): # FIXME: Modify the configure line to suit your build system here. configure('--prefix={0}'.format(prefix)) # FIXME: Add logic to build and install here. make() make('install') It doesn’t take much python coding to get from there to a working package: 4 Chapter 1. Table of Contents Spack Documentation, Release 0.9 from spack import * class Libelf(Package): """libelf lets you read, modify or create ELF object files in an architecture-independent way. The library takes care of size and endian issues, e.g. you can process a file for SPARC processors on an Intel-based system.""" homepage="http://www.mr511.de/software/english.html" url="http://www.mr511.de/software/libelf-0.8.13.tar.gz" version('0.8.13','4136d7b4c04df68b686570afa26988ac') version('0.8.12','e21f8273d9f5f6d43a59878dc274fec7') provides('elf') def install(self, spec, prefix): configure("--prefix="+ prefix, "--enable-shared", "--disable-dependency-tracking", "--disable-debug") make() # The mkdir commands in libelf's install can fail in parallel make("install", parallel=False) Spack also provides wrapper functions around common commands like configure, make, and cmake to make writing packages simple. 1.2 Getting Started 1.2.1 Download Getting spack is easy. You can clone it from the github repository using this command: $ git clone https://github.com/llnl/spack.git This will create a directory called spack. We’ll assume that the full path to this directory is in the SPACK_ROOT environment variable. Add $SPACK_ROOT/bin to your path and you’re ready to go: $ export PATH=$SPACK_ROOT/bin:$PATH $ spack install libelf For a richer experience, use Spack’s shell support: # For bash users $ export SPACK_ROOT=/path/to/spack $ . $SPACK_ROOT/share/spack/setup-env.sh # For tcsh or csh users(note you must set SPACK_ROOT) $ setenv SPACK_ROOT /path/to/spack $ source $SPACK_ROOT/share/spack/setup-env.csh This automatically adds Spack to your PATH. 1.2. Getting Started 5 Spack Documentation, Release 0.9 1.2.2 Installation You don’t need to install Spack; it’s ready to run as soon as you clone it from git. You may want to run it out of a prefix other than the git repository you cloned. The spack bootstrap command provides this functionality. To install spack in a new directory, simply type: $ spack bootstrap /my/favorite/prefix This will install a new spack script in /my/favorite/prefix/bin, which you can use just like you would the regular spack script. Each copy of spack installs packages into its own $PREFIX/opt directory. 1.3 Basic usage The spack command has many subcommands. You’ll only need a small subset of them for typical usage. Note that Spack colorizes output. less -R should be used with Spack to maintain this colorization. E.g.: $ spack find | less -R It is recommend that the following be put in your .bashrc file: alias less='less -R' 1.3.1 Listing available packages To install software with Spack, you need to know what software is available. You can see a list of available package names at the Package List webpage, or using the spack list command. spack list The spack list command prints out a list of all of the packages Spack can install: $ spack list ack llvm qrupdate activeharmony llvm-lld qt adept-utils lmdb qt-creator adios lmod qthreads adol-c lrslib R allinea-forge lrzip r-abind allinea-reports lua r-assertthat antlr lua-luafilesystem r-base64enc ape lua-luaposix r-bh apex LuaJIT r-BiocGenerics apr lwgrp r-boot apr-util lwm2 r-brew armadillo lz4 r-car arpack lzma r-caret arpack-ng lzo r-chron asciidoc m4 r-class astyle mafft r-cluster atk mariadb r-codetools atlas matio r-colorspace atop mbedtls r-crayon autoconf meep r-cubature 6 Chapter 1. Table of Contents Spack Documentation, Release 0.9 automaded memaxes r-curl automake mercurial r-datatable bash mesa r-dbi bbcp metis r-devtools bcftools mfem r-diagrammer bdw-gc Mitos r-dichromat bear mkl r-digest bertini moab r-doparallel bib2xhtml mpc r-dplyr binutils mpe2 r-dt bison mpfr r-dygraphs bliss mpibash r-e1071 blitz mpich r-filehash boost mpileaks r-foreach bowtie2 mrnet r-foreign boxlib msgpack-c r-gdata bpp-core mumps r-geosphere bpp-phyl munge r-ggmap bpp-seq muparser r-ggplot2 bpp-suite muster r-ggvis bwa mvapich2 r-git2r bzip2 mxml r-glmnet c-blosc nag r-googlevis cairo nano r-gridbase caliper nasm r-gridextra callpath nauty r-gtable cantera nccmp r-gtools cask ncdu r-htmltools cblas nco r-htmlwidgets cbtf ncurses r-httpuv cbtf-argonavis ncview r-httr cbtf-krell ndiff r-igraph cbtf-lanl netcdf r-influencer cdd netcdf-cxx r-inline cddlib netcdf-cxx4 r-irlba cdo netcdf-fortran r-iterators cereal netgauge r-jpeg cfitsio netlib-lapack r-jsonlite cgal netlib-scalapack r-labeling cgm nettle r-lattice cgns nextflow r-lazyeval cityhash ninja r-leaflet cleverleaf numdiff r-lme4 cloog nwchem r-lmtest cmake ocaml r-lubridate cmocka oce r-magic cnmem octave r-magrittr coreutils octave-splines r-mapproj cp2k octopus r-maps cppcheck ompss r-maptools cram ompt-openmp r-markdown cryptopp opari2 r-mass cscope openblas r-matrix cube opencoarrays r-matrixmodels cuda opencv r-memoise curl openexr r-mgcv czmq openjpeg r-mime daal openmpi r-minqa 1.3.
Recommended publications
  • R&S®BBA100 Broadband Amplifier Open
    R&S®BBA100 Broadband Amplifier Open Source Acknowledgment 5353.8300.00 – 01 /RL/1/EN 01.00 / Broadcasting 3575.4620.02 M: - T - PAD Open Source Acknowledgment R&S BBA100 Introduction Contents 1 Introduction ......................................................................................... 3 1.1 Disclaimer ..................................................................................................................... 3 1.2 How to obtain the source code .................................................................................. 3 2 Software packages ............................................................................. 4 3 Verbatim license texts ........................................................................ 7 3.1 Apache License 2.0 ..................................................................................................... 7 3.2 GNU Library General Public License, Version 2.0 (LGPL 2.0) ..............................10 3.3 Boost Software License ............................................................................................18 3.4 GNU General Public License, Version 2.0 (GPL 2.0) ..............................................18 3.5 GNU Lesser General Public License, Version 2.1 (LGPL 2.1) ...............................24 3.6 Mozilla Public License, Version 1.1 (MPL 1.1) ........................................................32 3.7 MIT ...............................................................................................................................40 3.8 JDOM License
    [Show full text]
  • On the Impact of Exception Handling Compatibility on Binary Instrumentation†
    On the Impact of Exception Handling Compatibility on Binary Instrumentation† Soumyakant Priyadarshan Huan Nguyen R. Sekar Stony Brook University Stony Brook University Stony Brook University Stony Brook, NY, USA Stony Brook, NY, USA Stony Brook, NY, USA [email protected] [email protected] [email protected] Abstract overheads, but has been held back by challenges in accurate dis- assembly and code pointer identification. With the emergence of To support C++ exception handling, compilers generate metadata position-independent (or relocatable) binaries as the dominant for- that is a rich source of information about the code layout. On mat in recent years, researchers have been able to address these Linux, this metadata is also used to support stack tracing, thread challenges, e.g., in Egalito [41], RetroWrite [11] and SBR[28, 29] cleanup and other functions. For this reason, Linux binaries contain systems. code-layout-revealing metadata for C-code as well. Even hand- written assembly in low-level system libraries is covered by such Despite recent advances, deployability of binary instrumentation metadata. We investigate the implications of this metadata in this continues to face significant challenges. One of the major concerns paper, and show that it can be used to (a) improve accuracy of is compatibility. In particular, existing static binary instrumentation disassembly, (b) achieve significantly better accuracy at function tools tend to break stack tracing (for C and C++) as well as C++ boundary identification as compared to previous research, and(c) exception handling. While compatibility with these features may as a rich source of information for defeating fine-grained code not be important for proof-of-concept instrumentations, it is hardly randomization.
    [Show full text]
  • MASTERCLASS GNUPG MASTERCLASS You Wouldn’T Want Other People Opening Your Letters and BEN EVERARD Your Data Is No Different
    MASTERCLASS GNUPG MASTERCLASS You wouldn’t want other people opening your letters and BEN EVERARD your data is no different. Encrypt it today! SECURE EMAIL WITH GNUPG AND ENIGMAIL Send encrypted emails from your favourite email client. our typical email is about as secure as a The first thing that you need to do is create a key to JOHN LANE postcard, which is good news if you’re a represent your identity in the OpenPGP world. You’d Ygovernment agency. But you wouldn’t use a typically create one key per identity that you have. postcard for most things sent in the post; you’d use a Most people would have one identity, being sealed envelope. Email is no different; you just need themselves as a person. However, some may find an envelope – and it’s called “Encryption”. having separate personal and professional identities Since the early 1990s, the main way to encrypt useful. It’s a personal choice, but starting with a single email has been PGP, which stands for “Pretty Good key will help while you’re learning. Privacy”. It’s a protocol for the secure encryption of Launch Seahorse and click on the large plus-sign email that has since evolved into an open standard icon that’s just below the menu. Select ‘PGP Key’ and called OpenPGP. work your way through the screens that follow to supply your name and email address and then My lovely horse generate the key. The GNU Privacy Guard (GnuPG), is a free, GPL-licensed You can, optionally, use the Advanced Key Options implementation of the OpenPGP standard (there are to add a comment that can help others identify your other implementations, both free and commercial – key and to select the cipher, its strength and set when the PGP name now refers to a commercial product the key should expire.
    [Show full text]
  • Arxiv:1911.09220V2 [Cs.MS] 13 Jul 2020
    MFEM: A MODULAR FINITE ELEMENT METHODS LIBRARY ROBERT ANDERSON, JULIAN ANDREJ, ANDREW BARKER, JAMIE BRAMWELL, JEAN- SYLVAIN CAMIER, JAKUB CERVENY, VESELIN DOBREV, YOHANN DUDOUIT, AARON FISHER, TZANIO KOLEV, WILL PAZNER, MARK STOWELL, VLADIMIR TOMOV Lawrence Livermore National Laboratory, Livermore, USA IDO AKKERMAN Delft University of Technology, Netherlands JOHANN DAHM IBM Research { Almaden, Almaden, USA DAVID MEDINA Occalytics, LLC, Houston, USA STEFANO ZAMPINI King Abdullah University of Science and Technology, Thuwal, Saudi Arabia Abstract. MFEM is an open-source, lightweight, flexible and scalable C++ library for modular finite element methods that features arbitrary high-order finite element meshes and spaces, support for a wide variety of dis- cretization approaches and emphasis on usability, portability, and high-performance computing efficiency. MFEM's goal is to provide application scientists with access to cutting-edge algorithms for high-order finite element mesh- ing, discretizations and linear solvers, while enabling researchers to quickly and easily develop and test new algorithms in very general, fully unstructured, high-order, parallel and GPU-accelerated settings. In this paper we describe the underlying algorithms and finite element abstractions provided by MFEM, discuss the software implementation, and illustrate various applications of the library. arXiv:1911.09220v2 [cs.MS] 13 Jul 2020 1. Introduction The Finite Element Method (FEM) is a powerful discretization technique that uses general unstructured grids to approximate the solutions of many partial differential equations (PDEs). It has been exhaustively studied, both theoretically and in practice, in the past several decades [1, 2, 3, 4, 5, 6, 7, 8]. MFEM is an open-source, lightweight, modular and scalable software library for finite elements, featuring arbitrary high-order finite element meshes and spaces, support for a wide variety of discretization approaches and emphasis on usability, portability, and high-performance computing (HPC) efficiency [9].
    [Show full text]
  • THINC: a Virtual and Remote Display Architecture for Desktop Computing and Mobile Devices
    THINC: A Virtual and Remote Display Architecture for Desktop Computing and Mobile Devices Ricardo A. Baratto Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in the Graduate School of Arts and Sciences COLUMBIA UNIVERSITY 2011 c 2011 Ricardo A. Baratto This work may be used in accordance with Creative Commons, Attribution-NonCommercial-NoDerivs License. For more information about that license, see http://creativecommons.org/licenses/by-nc-nd/3.0/. For other uses, please contact the author. ABSTRACT THINC: A Virtual and Remote Display Architecture for Desktop Computing and Mobile Devices Ricardo A. Baratto THINC is a new virtual and remote display architecture for desktop computing. It has been designed to address the limitations and performance shortcomings of existing remote display technology, and to provide a building block around which novel desktop architectures can be built. THINC is architected around the notion of a virtual display device driver, a software-only component that behaves like a traditional device driver, but instead of managing specific hardware, enables desktop input and output to be intercepted, manipulated, and redirected at will. On top of this architecture, THINC introduces a simple, low-level, device-independent representation of display changes, and a number of novel optimizations and techniques to perform efficient interception and redirection of display output. This dissertation presents the design and implementation of THINC. It also intro- duces a number of novel systems which build upon THINC's architecture to provide new and improved desktop computing services. The contributions of this dissertation are as follows: • A high performance remote display system for LAN and WAN environments.
    [Show full text]
  • Full Circle Magazine #63 1 Full Circle Magazine Is Neither Affiliated With, Nor Endorsed By, Canonical Ltd
    Full Circle THE INDEPENDENT MAGAZINE FOR THE UBUNTU LINUX COMMUNITY WEB DEV ISSUE #63 - July 2012 LAMP & WEB DEVELOPMENT ) m o c . r k c i l F ( e u S : o t o h P RREEDDUUCCEE **BBUUNNTTUU BBOOOOTT TTIIMMEE WWIITTHH TTHHIISS IINN DDEEPPTTHH AARRTTIICCLLEE.. WWIITTHH GGRRAAPPHHSS!! full circle magazine #63 1 Full Circle Magazine is neither affiliated with, nor endorsed by, Canonical Ltd. contents ^ HowTo Full Circle Opinions THE INDEPENDENT MAGAZINE FOR THE UBUNTU LINUX COMMUNITY My Story p.39 Python - Part 34 p.07 Columns LibreOffice - Part 15 p.11 Command & Conquer p.05 Audio Flux p.52 My Opinion p.41 Amateur Astronomy - Pt1 p.14 Ask The New Guy p.26 Ubuntu Games p.54 Review p.44 Letters p.46 GIMP - Beanstalk Pt3 p.17 Linux Labs p.29 Q&A p.49 Inkscape - Part 2 p.19 Ubuntu Women p.53 Closing Windows p.36 Web Dev - Pt1 p.22 Graphics Web Dev The articles contained in this magazine are released under the Creative Commons Attribution-Share Alike 3.0 Unported license. This means you can adapt, copy, distribute and transmit the articles but only under the following conditions: you must attribute the work to the original author in some way (at least a name, email or URL) and to this magazine by name ('Full Circle Magazine') and the URL www.fullcirclemagazine.org (but not attribute the article(s) in any way that suggests that they endorse you or your use of the work). If you alter, transform, or build upon this work, you must distribute the resulting work under the same, similar or a compatible license.
    [Show full text]
  • Virtualgl / Turbovnc Survey Results Version 1, 3/17/2008 -- the Virtualgl Project
    VirtualGL / TurboVNC Survey Results Version 1, 3/17/2008 -- The VirtualGL Project This report and all associated illustrations are licensed under the Creative Commons Attribution 3.0 License. Any works which contain material derived from this document must cite The VirtualGL Project as the source of the material and list the current URL for the VirtualGL web site. Between December, 2007 and March, 2008, a survey of the VirtualGL community was conducted to ascertain which features and platforms were of interest to current and future users of VirtualGL and TurboVNC. The larger purpose of this survey was to steer the future development of VirtualGL and TurboVNC based on user input. 1 Statistics 49 users responded to the survey, with 32 complete responses. When listing percentage breakdowns for each response to a question, this report computes the percentages relative to the total number of complete responses for that question. 2 Responses 2.1 Server Platform “Please select the server platform(s) that you currently use or plan to use with VirtualGL/TurboVNC” Platform Number of Respondees (%) Linux/x86 25 / 46 (54%) ● Enterprise Linux 3 (x86) 2 / 46 (4.3%) ● Enterprise Linux 4 (x86) 5 / 46 (11%) ● Enterprise Linux 5 (x86) 6 / 46 (13%) ● Fedora Core 4 (x86) 1 / 46 (2.2%) ● Fedora Core 7 (x86) 1 / 46 (2.2%) ● Fedora Core 8 (x86) 4 / 46 (8.7%) ● SuSE Linux Enterprise 9 (x86) 1 / 46 (2.2%) 1 Platform Number of Respondees (%) ● SuSE Linux Enterprise 10 (x86) 2 / 46 (4.3%) ● Ubuntu (x86) 7 / 46 (15%) ● Debian (x86) 5 / 46 (11%) ● Gentoo (x86) 1 /
    [Show full text]
  • Software Engineer Is .Jusiak.Net Kr Is @Jusiak.Net (0) 791-384-1386
    Krzysztof (Kris) Jusiak Software Engineer http://kr is .jusiak.net kr is @jusiak.net (0) 791-384-1386 Education 2005 - 2010 Wroclaw University of Technology Wroclaw (Poland) MSc in Computer Science, specialised in Software Engineering (Top grade) Employment 2013 – Present King London (United Kingdom) Game/Software Developer (Mobile) King is a worldwide leader in casual games with more than 30 billion games played per month globally. We are a leading interactive entertainment company for the mobile world. Our mission is to provide highly engaging content to our audience to match their mobile lifestyles: anywhere, anytime, through any platform and on any device. Software Developer in a scrum team responsible for development and releases of mobile games played by millions active daily players. 90% of my job is focused on developing software using C++14 standard for different platforms such as, iOS, Android and Facebook (HTML5 - Emscripten). My core role is to provide high quality features and review/refactor already implemented. I am also involved in recruitment process by being a technical expert on interviews. I have done a lot of improvements to the projects I have been involved in, such as, performance/compile times optimizations, introduction of static analysis tools as well as a replacement of Service Locator pattern by Dependency Injection. • Implementing and releasing multi-platform games played by more than 100 millions active daily players • Reduced time to render the textures by 10% by changing loading files caching mechanism • Implemented an integration test framework which eliminated commonly reoccurring issues 2009 – 2013 Nokia Networks Wroclaw (Poland) Software Engineer Nokia Networks is the world’s specialist in mobile broadband, which helps enable end users to do more than ever before with the world’s most efficient mobile networks, the intelligence to maximize their value and the services to make it all work together.
    [Show full text]
  • Structural Plasticity and Associative Memory in Balanced Neural Networks with Spike-Time Dependent Inhibitory Plasticity’
    STRUCTURALPLASTICITYANDASSOCIATIVE MEMORYINBALANCEDNEURALNETWORKSWITH SPIKE-TIMEDEPENDENTINHIBITORYPLASTICITY submitted to the university of hertfordshire in partial fulfilment of the requirements of the degree of DOCTOROFPHILOSOPHY ankur sinha uh biocomputation group centre for computer science and informatics research university of hertfordshire hatfield SUPERVISORS: professor volker steuber dr christoph metzner professor rod adams professor michael schmuker dr neil davey may, 2020 ACKNOWLEDGEMENTS No man is an island, Entire of itself, Every man is a piece of the continent, A part of the main. John Donne What Donne says so elegantly in four short lines takes years to realise. As a youngster, I too had thought that I could do everything alone, by myself, without ever having to ask another soul for assistance. The more I live and see, the more I am convinced that this is not true. One simply cannot disassociate themself from ‘the main’. I have come to understand that a great many people have taken on the role of potters at different times in my life to shape it to what it is today. It is therefore, with great affection that I take this opportunity to thank them for I shall forever be indebted to them. I must begin with my immediate family. I could not have wished for better parents, Dr Kalpana Sinha and Dr Sanjay Kumar Sinha. They have always been there to guide me towards the right and away from wrong. They, both being doctors, have showed me the beauty of nature and the human body from a young age. They, knowing the importance of education and exposure to the world, have made many sacrifices to ensure that I got the best education possible.
    [Show full text]
  • MFEM: a Modular Finite Element Methods Library
    MFEM: A Modular Finite Element Methods Library Robert Anderson1, Andrew Barker1, Jamie Bramwell1, Jakub Cerveny2, Johann Dahm3, Veselin Dobrev1,YohannDudouit1, Aaron Fisher1,TzanioKolev1,MarkStowell1,and Vladimir Tomov1 1Lawrence Livermore National Laboratory 2University of West Bohemia 3IBM Research July 2, 2018 Abstract MFEM is a free, lightweight, flexible and scalable C++ library for modular finite element methods that features arbitrary high-order finite element meshes and spaces, support for a wide variety of discretization approaches and emphasis on usability, portability, and high-performance computing efficiency. Its mission is to provide application scientists with access to cutting-edge algorithms for high-order finite element meshing, discretizations and linear solvers. MFEM also enables researchers to quickly and easily develop and test new algorithms in very general, fully unstructured, high-order, parallel settings. In this paper we describe the underlying algorithms and finite element abstractions provided by MFEM, discuss the software implementation, and illustrate various applications of the library. Contents 1 Introduction 3 2 Overview of the Finite Element Method 4 3Meshes 9 3.1 Conforming Meshes . 10 3.2 Non-Conforming Meshes . 11 3.3 NURBS Meshes . 12 3.4 Parallel Meshes . 12 3.5 Supported Input and Output Formats . 13 1 4 Finite Element Spaces 13 4.1 FiniteElements....................................... 14 4.2 DiscretedeRhamComplex ................................ 16 4.3 High-OrderSpaces ..................................... 17 4.4 Visualization . 18 5 Finite Element Operators 18 5.1 DiscretizationMethods................................... 18 5.2 FiniteElementLinearSystems . 19 5.3 Operator Decomposition . 23 5.4 High-Order Partial Assembly . 25 6 High-Performance Computing 27 6.1 Parallel Meshes, Spaces, and Operators . 27 6.2 Scalable Linear Solvers .
    [Show full text]
  • Open Source Used in 250 350 550 Switches 2.5.7.X
    Open Source Used In 250 350 550 switches 2.5.7.x Cisco Systems, Inc. www.cisco.com Cisco has more than 200 offices worldwide. Addresses, phone numbers, and fax numbers are listed on the Cisco website at www.cisco.com/go/offices. Text Part Number: 78EE117C99-1099179018 Open Source Used In 250 350 550 switches 2.5.7.x 1 This document contains licenses and notices for open source software used in this product. With respect to the free/open source software listed in this document, if you have any questions or wish to receive a copy of any source code to which you may be entitled under the applicable free/open source license(s) (such as the GNU Lesser/General Public License), please contact us at [email protected]. In your requests please include the following reference number 78EE117C99-1099179018 Contents 1.1 jq 1.6-1 1.1.1 Available under license 1.2 avahi 0.6.32-3 1.2.1 Available under license 1.3 dnsmasq 2.78-1 1.3.1 Available under license 1.4 ejdb 1.2.12 1.4.1 Available under license 1.5 procd 2015/10/29 1.5.1 Available under license 1.6 jsonfilter 2014/6/19 1.6.1 Available under license 1.7 libnetconf 0.10.0-2 1.7.1 Available under license 1.8 libcgroup 0.41 1.8.1 Available under license 1.9 d-bus 1.10.4 1.9.1 Available under license 1.10 net-snmp 5.9 1.10.1 Available under license 1.11 nmap 6.47-2 1.11.1 Available under license 1.12 u-boot 2013.01 1.12.1 Available under license 1.13 bzip2 1.0.6 1.13.1 Available under license Open Source Used In 250 350 550 switches 2.5.7.x 2 1.14 openssl 1.1.1c 1.14.1 Available
    [Show full text]
  • AUTOMATIC DESIGN of NONCRYPTOGRAPHIC HASH FUNCTIONS USING GENETIC PROGRAMMING, Computational Intelligence, 4, 798– 831
    Universidad uc3m Carlos Ill 0 -Archivo de Madrid This is a postprint version of the following published document: Estébanez, C., Saez, Y., Recio, G., and Isasi, P. (2014), AUTOMATIC DESIGN OF NONCRYPTOGRAPHIC HASH FUNCTIONS USING GENETIC PROGRAMMING, Computational Intelligence, 4, 798– 831 DOI: https://doi.org/10.1111/coin.12033 © 2014 Wiley Periodicals, Inc. AUTOMATIC DESIGN OF NONCRYPTOGRAPHIC HASH FUNCTIONS USING GENETIC PROGRAMMING CESAR ESTEBANEZ, YAGO SAEZ, GUSTAVO RECIO, AND PEDRO ISASI Department of Computer Science, Universidad Carlos III de Madrid, Madrid, Spain Noncryptographic hash functions have an immense number of important practical applications owing to their powerful search properties. However, those properties critically depend on good designs: Inappropriately chosen hash functions are a very common source of performance losses. On the other hand, hash functions are difficult to design: They are extremely nonlinear and counterintuitive, and relationships between the variables are often intricate and obscure. In this work, we demonstrate the utility of genetic programming (GP) and avalanche effect to automatically generate noncryptographic hashes that can compete with state-of-the-art hash functions. We describe the design and implementation of our system, called GP-hash, and its fitness function, based on avalanche properties. Also, we experimentally identify good terminal and function sets and parameters for this task, providing interesting information for future research in this topic. Using GP-hash, we were able to generate two different families of noncryptographic hashes. These hashes are able to compete with a selection of the most important functions of the hashing literature, most of them widely used in the industry and created by world-class hashing experts with years of experience.
    [Show full text]