├── README.md └── definitionFiles ├── WRF ├── Licence.txt ├── README.md ├── TPP.txt ├── wrfBuild.def └── wrfRun.def ├── base ├── Licence.txt ├── README.md ├── TPP.txt └── base.def ├── gromacs ├── Licence.txt ├── README.md ├── TPP.txt ├── gromacsBuild.def └── gromacsRun.def ├── lammps ├── Licence.txt ├── README.md ├── TPP.txt ├── lammpsBuild.def └── lammpsRun.def └── namd ├── Licence.txt ├── README.md ├── TPP.txt ├── namdBuild.def └── namdRun.def /README.md: -------------------------------------------------------------------------------- 1 | DISCONTINUATION OF PROJECT 2 | 3 | This project will no longer be maintained by Intel. 4 | 5 | Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project. 6 | 7 | Intel no longer accepts patches to this project. 8 | 9 | If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project. 10 | 11 | Contact: webadmin@linux.intel.com 12 | # Goal: 13 | Create containers using Singularity definition file for HPC apps and run them on the cloud or bare metal for Single and Cluster runs. 14 | 15 | This repo should have definition files only for few HPC applications. Users can utilize them to generate containers. 16 | 17 | ## Get Help 18 | - [Post an issue](https://github.com/intel/HPC-containers-from-Intel/issues) if you face any problem building or running a container 19 | -------------------------------------------------------------------------------- /definitionFiles/WRF/Licence.txt: -------------------------------------------------------------------------------- 1 | Copyright 2020 Intel Corporation 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /definitionFiles/WRF/README.md: -------------------------------------------------------------------------------- 1 | # Intel-Hpc-Containers 2 | 3 | 4 | - LEGAL NOTICE: By downloading and using this build file (the “Software Package”) and the included software or software made available for download, you agree to the terms and conditions of the software license agreements for the Software Package, which may also include notices, disclaimers, or license terms for third party software (together, the “Agreements”) included in this README file. 5 | 6 | - This Singularity definition file will automatically download : 7 | 8 | * WRF 9 | - Download Location: (http://www2.mmm.ucar.edu/wrf/src/WRFV3.9.1.1.TAR.gz) 10 | - License: (https://raw.githubusercontent.com/wrf-model/WRF/master/LICENSE.txt) 11 | * Curl 12 | - Download Location: https://curl.haxx.se/download/curl-7.64.0.tar.gz) 13 | - License: https://curl.haxx.se/docs/copyright.html) 14 | * Zlib 15 | - Download Location: (http://www.zlib.net/zlib-1.2.11.tar.gz) 16 | - License: (https://www.zlib.net/zlib_license.html) 17 | * Szip 18 | - Download Location: (https://support.hdfgroup.org/ftp/lib-external/szip/2.1.1/src/szip-2.1.1.tar.gz) 19 | - License: (https://support.hdfgroup.org/doc_resource/SZIP/Commercial_szip.html) 20 | 21 | Legal Notice: Commercial users may use the Szip software integrated with HDF to decode data and for internal activities that do not involve or result in the development of an Szip-based software product. 22 | 23 | To use this software to encode data or in the development of an Szip-based software product, a commercial user may have to acquire an appropriate license from the appropriate licensing agent. See the HDF/Szip collaborative agreement (PDF) for details. 24 | 25 | For clarification or further information regarding SZIP licensing, contact ICs, LLC, at: ics@ics-rhbd.com 26 | 27 | For additional details: https://support.hdfgroup.org/doc_resource/SZIP/Commercial_szip.html 28 | 29 | * HDF5 30 | - Download Location: (https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.21/src/hdf5-1.8.21.tar.gz) 31 | - License: (https://support.hdfgroup.org/ftp/HDF5/releases/COPYING) 32 | * NetCDF-C 33 | - Download Location: (https://github.com/Unidata/netcdf-c/archive/v4.6.3.tar.gz) 34 | - License: (https://raw.githubusercontent.com/Unidata/netcdf-c/master/COPYRIGHT) 35 | * NetCDF-Fortran 36 | - Download Location: (https://github.com/Unidata/netcdf-fortran/archive/v4.4.5.tar.gz) 37 | - License: (https://raw.githubusercontent.com/Unidata/netcdf-fortran/master/F03Interfaces_LICENSE) 38 | * WRF Benchmark files 39 | - Download Location: bench_2.5km (http://www2.mmm.ucar.edu/wrf/bench/conus2.5km_v3911/bench_2.5km.tar.bz2) 40 | - Download Location: bench_12km (http://www2.mmm.ucar.edu/wrf/bench/conus12km_v3911/bench_12km.tar.bz2) 41 | 42 | 43 | -------------------------------------------------------------- 44 | Create containers with Singularity version 3.x for HPC apps for Single and Cluster runs for Intel avx512 enabled plarforms: 45 | 46 | o The Singularity definition file will require these programs to be pre-installed: 47 | 48 | - Singularity 3.x version (https://sylabs.io/guides/3.5/admin-guide/installation.html) 49 | - Intel® Parallel Studio XE (https://software.intel.com/content/www/us/en/develop/tools/parallel-studio-xe/choose-download.html) 50 | - Super user access to the system 51 | - Centos (for other OSs, you will need to modify the instructions/recipe accordingly) 52 | 53 | 54 | Instructions to build a container: 55 | 56 | 1. Build the binaries and dependencies from Build recipe : 57 | 58 | `$ sudo singularity build ` 59 | 60 | This will generate the binaries that you will need in step #3 and a dummy container that you can just use or ignore 61 | 62 | 63 | 2. Build the base container that includes the OS, Intel runtime libraries, and some independencies . Build it from the base https://github.com/intel/HPC-containers-from-Intel/blob/master/definitionFiles/base/base.def recipe as: 64 | 65 | `$ sudo singularity build /tmp/base.simg base` 66 | 67 | 68 | 3. Build the container . You may need to adjust and tweak the recipe a little bit to point out to your binaries, programs, and dependencies. You will need: 69 | 70 | * The binaries from step #1 71 | * The /tmp/base.simg container from step #2 72 | 73 | `$ sudo singularity build --force ` 74 | 75 | 76 | **Run instructions**: 77 | 78 | `$ singularity run-help ` 79 | 80 | -------------------------------------------------------------------------------- /definitionFiles/WRF/TPP.txt: -------------------------------------------------------------------------------- 1 | “WRF container definition file” Third Party Programs File 2 | This file contains the list of third party software (“third party programs”) contained in the Intel software and their required notices and/or license terms. This third party software, even if included with the distribution of the Intel software, may be governed by separate license terms, including without limitation, third party license terms, other Intel software license terms, and open source software license terms. These separate license terms govern your use of the third party programs as set forth in the “third-party-programs.txt” or other similarly-named text file. 3 | 4 | Third party programs and their corresponding required notices and/or license terms are listed below. 5 | ------------------------------------------------------------- 6 | 1. Singularity 3.5 7 | Copyright (c) 2015-2017, Gregory M. Kurtzer. All rights reserved. 8 | Copyright (c) 2016-2017, The Regents of the University of California. All right reserved. 9 | Copyright (c) 2017, SingularityWare, LLC. All rights reserved. 10 | Copyright (c) 2018-2019, Sylabs, Inc. All rights reserved. 11 | 12 | The 3-Clause BSD 13 | 14 | Redistribution and use in source and binary forms, with or without 15 | modification, are permitted provided that the following conditions are met: 16 | 17 | 1. Redistributions of source code must retain the above copyright notice, 18 | this list of conditions and the following disclaimer. 19 | 20 | 2. Redistributions in binary form must reproduce the above copyright notice, 21 | this list of conditions and the following disclaimer in the documentation 22 | and/or other materials provided with the distribution. 23 | 24 | 3. Neither the name of the copyright holder nor the names of its 25 | contributors may be used to endorse or promote products derived from this 26 | software without specific prior written permission. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 29 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 30 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 31 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 32 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 33 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 34 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 35 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 36 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 37 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | POSSIBILITY OF SUCH DAMAGE. 39 | ------------------------------------------------------------- 40 | ------------------------------------------------------------- 41 | 2. Centos 42 | CentOS Linux 7 EULA 43 | 44 | CentOS Linux 7 comes with no guarantees or warranties of any sorts, 45 | either written or implied. 46 | 47 | The Distribution is released as GPLv2. Individual packages in the 48 | distribution come with their own licences. 49 | 50 | --------------------------------------------------------------------------------------------------- 51 | 3. Intel® Parallel Studio XE Runtime 2020 52 | 53 | Intel Simplified Software License (Version February 2020) 54 | Use and Redistribution. You may use and redistribute the software (the “Software”), without modification, provided the following conditions are met: 55 | • Redistributions must reproduce the above copyright notice and the following terms of use in the Software and in the documentation and/or other materials provided with the distribution. 56 | • Neither the name of Intel nor the names of its suppliers may be used to endorse or promote products derived from this Software without specific prior written permission. 57 | • No reverse engineering, decompilation, or disassembly of this Software is permitted. 58 | Limited patent license. Intel grants you a world-wide, royalty-free, non-exclusive license under patents it now or hereafter owns or controls to make, have made, use, import, offer to sell and sell (“Utilize”) this Software, but solely to the extent that any such patent is necessary to Utilize the Software alone. The patent license shall not apply to any combinations which include this software. No hardware per se is licensed hereunder. 59 | Third party programs. The Software may contain Third Party Programs. “Third Party Programs” are third party software, open source software or other Intel software listed in the “third-party-programs.txt” or other similarly named text file that is included with the Software. Third Party Programs, even if included with the distribution of the Software, may be governed by separate license terms, including without limitation, third party license terms, open source software notices and terms, and/or other Intel software license terms. These separate license terms may govern your use of the Third Party Programs. 60 | DISCLAIMER. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED. THIS SOFTWARE IS NOT INTENDED FOR USE IN SYSTEMS OR APPLICATIONS WHERE FAILURE OF THE SOFTWARE MAY CAUSE PERSONAL INJURY OR DEATH AND YOU AGREE THAT YOU ARE FULLY RESPONSIBLE FOR ANY CLAIMS, COSTS, DAMAGES, EXPENSES, AND ATTORNEYS’ FEES ARISING OUT OF ANY SUCH USE, EVEN IF ANY CLAIM ALLEGES THAT INTEL WAS NEGLIGENT REGARDING THE DESIGN OR MANUFACTURE OF THE MATERIALS. 61 | LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. YOU AGREE TO INDEMNIFY AND HOLD INTEL HARMLESS AGAINST ANY CLAIMS AND EXPENSES RESULTING FROM YOUR USE OR UNAUTHORIZED USE OF THE SOFTWARE. 62 | No support. Intel may make changes to the Software, at any time without notice, and is not obligated to support, update or provide training for the Software. 63 | Termination. Intel may terminate your right to use the Software in the event of your breach of this Agreement and you fail to cure the breach within a reasonable period of time. 64 | Feedback. Should you provide Intel with comments, modifications, corrections, enhancements or other input (“Feedback”) related to the Software Intel will be free to use, disclose, reproduce, license or otherwise distribute or exploit the Feedback in its sole discretion without any obligations or restrictions of any kind, including without limitation, intellectual property rights or licensing obligations. 65 | Compliance with laws. You agree to comply with all relevant laws and regulations governing your use, transfer, import or export (or prohibition thereof) of the Software. 66 | Governing law. All disputes will be governed by the laws of the United States of America and the State of Delaware without reference to conflict of law principles and subject to the exclusive jurisdiction of the state or federal courts sitting in the State of Delaware, and each party agrees that it submits to the personal jurisdiction and venue of those courts and waives any objections. The United Nations Convention on Contracts for the International Sale of Goods (1980) is specifically excluded and will not apply to the Software. 67 | *Other names and brands may be claimed as the property of others. 68 | -------------------------------------------------------------------------------- 69 | 4. CURL 70 | COPYRIGHT AND PERMISSION NOTICE 71 | 72 | Copyright (c) 1996 - 2020, Daniel Stenberg, daniel@haxx.se, and many contributors, see the THANKS file. 73 | 74 | All rights reserved. 75 | 76 | Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. 77 | 78 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 79 | 80 | Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder. 81 | 82 | --------------------------------------------------------------------------------------------- 83 | 5. ZLIB 84 | /* zlib.h -- interface of the 'zlib' general purpose compression library 85 | version 1.2.11, January 15th, 2017 86 | 87 | Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler 88 | 89 | This software is provided 'as-is', without any express or implied 90 | warranty. In no event will the authors be held liable for any damages 91 | arising from the use of this software. 92 | 93 | Permission is granted to anyone to use this software for any purpose, 94 | including commercial applications, and to alter it and redistribute it 95 | freely, subject to the following restrictions: 96 | 97 | 1. The origin of this software must not be misrepresented; you must not 98 | claim that you wrote the original software. If you use this software 99 | in a product, an acknowledgment in the product documentation would be 100 | appreciated but is not required. 101 | 2. Altered source versions must be plainly marked as such, and must not be 102 | misrepresented as being the original software. 103 | 3. This notice may not be removed or altered from any source distribution. 104 | 105 | Jean-loup Gailly Mark Adler 106 | jloup@gzip.org madler@alumni.caltech.edu 107 | 108 | */ 109 | 110 | -------------------------------------------------------------------------- 111 | 6. SZIP 112 | Szip Copyright and License Statement, as Distributed in the HDF Source Code 113 | 114 | Commercial use 115 | Commercial users may use the Szip software integrated with HDF to decode data and for internal activities that do not involve or result in the development of an Szip-based software product. 116 | To use this software to encode data or in the development of an Szip-based software product, a commercial user may have to acquire an appropriate license from the appropriate licensing agent. See the HDF/Szip collaborative agreement (PDF) for details. 117 | For clarification or further information regarding SZIP licensing, contact ICs, LLC, at: ics@ics-rhbd.com 118 | The SZIP Science Data Lossless Compression Program is Copyright (C) 2001 Science 119 | & Technology Corporation @ UNM. All rights released. Copyright (C) 2003 Lowell 120 | H. Miles and Jack A. Venbrux. Licensed to ICs, LLC, for distribution by the 121 | University of Illinois' National Center for Supercomputing Applications as a 122 | part of the HDF data storage and retrieval file format and software library 123 | products package. All rights reserved. Do not modify or use for other 124 | purposes. 125 | 126 | SZIP implements an extended Rice adaptive lossless compression algorithm 127 | for sample data. The primary algorithm was developed by R. F. Rice at 128 | Jet Propulsion Laboratory. 129 | 130 | SZIP embodies certain inventions patented by the National Aeronautics & 131 | Space Administration. United States Patent Nos. 5,448,642, 5,687,255, 132 | and 5,822,457 have been licensed to ICs, LLC, for distribution with the 133 | HDF data storage and retrieval file format and software library products. 134 | All rights reserved. 135 | 136 | Revocable, royalty-free, nonexclusive sublicense to use SZIP decompression 137 | software routines and underlying patents is hereby granted by ICs, LLC, to 138 | all users of and in conjunction with HDF data storage and retrieval file 139 | format and software library products. 140 | 141 | Revocable, royalty-free, nonexclusive sublicense to use SZIP compression 142 | software routines and underlying patents for non-commercial, scientific use 143 | only is hereby granted by ICs, LLC, to users of and in conjunction with HDF 144 | data storage and retrieval file format and software library products. 145 | 146 | For commercial use license to SZIP compression software routines and underlying 147 | patents please contact ICs, LLC, at: 148 | 149 | Joseph J. Feeley, Ph.D., P.E. 150 | Chief Executive Officer 151 | ICs, LLC 152 | PO Box 2236 153 | McCall, ID 83638 154 | 155 | Email: ics@ics-rhbd.com 156 | 157 | ------------------------------------------------------------------------------------ 158 | 7. HDF5 159 | Copyright Notice and License Terms for 160 | HDF5 (Hierarchical Data Format 5) Software Library and Utilities 161 | ----------------------------------------------------------------------------- 162 | 163 | HDF5 (Hierarchical Data Format 5) Software Library and Utilities 164 | Copyright (c) 2006-2018, The HDF Group. 165 | 166 | NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities 167 | Copyright (c) 1998-2006, The Board of Trustees of the University of Illinois. 168 | 169 | All rights reserved. 170 | 171 | Redistribution and use in source and binary forms, with or without 172 | modification, are permitted for any purpose (including commercial purposes) 173 | provided that the following conditions are met: 174 | 175 | 1. Redistributions of source code must retain the above copyright notice, 176 | this list of conditions, and the following disclaimer. 177 | 178 | 2. Redistributions in binary form must reproduce the above copyright notice, 179 | this list of conditions, and the following disclaimer in the documentation 180 | and/or materials provided with the distribution. 181 | 182 | 3. Neither the name of The HDF Group, the name of the University, nor the 183 | name of any Contributor may be used to endorse or promote products derived 184 | from this software without specific prior written permission from 185 | The HDF Group, the University, or the Contributor, respectively. 186 | 187 | DISCLAIMER: 188 | THIS SOFTWARE IS PROVIDED BY THE HDF GROUP AND THE CONTRIBUTORS 189 | "AS IS" WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. IN NO EVENT SHALL THE HDF GROUP OR THE CONTRIBUTORS BE LIABLE FOR ANY DAMAGES SUFFERED BY THE USERS ARISING OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 190 | 191 | You are under no obligation whatsoever to provide any bug fixes, patches, or upgrades to the features, functionality or performance of the source code ("Enhancements") to anyone; however, if you choose to make your Enhancements available either publicly, or directly to The HDF Group, without imposing a separate written license agreement for such Enhancements, then you hereby grant the following license: a non-exclusive, royalty-free perpetual license to install, use, modify, prepare derivative works, incorporate into other computer software, distribute, and sublicense such enhancements or derivative works thereof, in binary and source code form. 192 | 193 | ----------------------------------------------------------------------------- 194 | ----------------------------------------------------------------------------- 195 | 196 | Limited portions of HDF5 were developed by Lawrence Berkeley National 197 | Laboratory (LBNL). LBNL's Copyright Notice and Licensing Terms can be 198 | found here: COPYING_LBNL_HDF5 file in this directory or at 199 | http://support.hdfgroup.org/ftp/HDF5/releases/COPYING_LBNL_HDF5. 200 | 201 | ----------------------------------------------------------------------------- 202 | ----------------------------------------------------------------------------- 203 | 204 | Contributors: National Center for Supercomputing Applications (NCSA) at 205 | the University of Illinois, Fortner Software, Unidata Program Center (netCDF), The Independent JPEG Group (JPEG), Jean-loup Gailly and Mark Adler (gzip), and Digital Equipment Corporation (DEC). 206 | 207 | ----------------------------------------------------------------------------- 208 | 209 | Portions of HDF5 were developed with support from the Lawrence Berkeley 210 | National Laboratory (LBNL) and the United States Department of Energy 211 | under Prime Contract No. DE-AC02-05CH11231. 212 | 213 | ----------------------------------------------------------------------------- 214 | 215 | Portions of HDF5 were developed with support from the University of 216 | California, Lawrence Livermore National Laboratory (UC LLNL). 217 | The following statement applies to those portions of the product and must 218 | be retained in any redistribution of source code, binaries, documentation, 219 | and/or accompanying materials: 220 | 221 | This work was partially produced at the University of California, 222 | Lawrence Livermore National Laboratory (UC LLNL) under contract 223 | no. W-7405-ENG-48 (Contract 48) between the U.S. Department of Energy 224 | (DOE) and The Regents of the University of California (University) 225 | for the operation of UC LLNL. 226 | 227 | DISCLAIMER: 228 | This work was prepared as an account of work sponsored by an agency of 229 | the United States Government. Neither the United States Government nor 230 | the University of California nor any of their employees, makes any 231 | warranty, express or implied, or assumes any liability or responsibility 232 | for the accuracy, completeness, or usefulness of any information, 233 | apparatus, product, or process disclosed, or represents that its use 234 | would not infringe privately- owned rights. Reference herein to any 235 | specific commercial products, process, or service by trade name, 236 | trademark, manufacturer, or otherwise, does not necessarily constitute 237 | or imply its endorsement, recommendation, or favoring by the United 238 | States Government or the University of California. The views and 239 | opinions of authors expressed herein do not necessarily state or reflect 240 | those of the United States Government or the University of California, 241 | and shall not be used for advertising or product endorsement purposes. 242 | 243 | ----------------------------------------------------------------------------- 244 | 245 | HDF5 is available with the SZIP compression library but SZIP is not part 246 | of HDF5 and has separate copyright and license terms. See SZIP Compression 247 | in HDF Products (www.hdfgroup.org/doc_resource/SZIP/) for further details. 248 | 249 | ----------------------------------------------------------------------------- 250 | 8. NetCDF-C 251 | 252 | Copyright 2018 Unidata 253 | 254 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 255 | 256 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 257 | 258 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 259 | 260 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 261 | 262 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 263 | 264 | ---------------------------------------------------------------------------------- 265 | 9. NetCDF-Fortran 266 | 267 | ! License (and other Lawyer Language) 268 | 269 | ! This software is released under the Apache 2.0 Open Source License. The 270 | ! full text of the License can be viewed at : 271 | ! 272 | ! http:www.apache.org/licenses/LICENSE-2.0.html 273 | ! 274 | ! The author grants to the University Corporation for Atmospheric Research 275 | ! (UCAR), Boulder, CO, USA the right to revise and extend the software 276 | ! without restriction. However, the author retains all copyrights and 277 | ! intellectual property rights explicitly stated in or implied by the 278 | ! Apache license 279 | 280 | -------------------------------------------------------- 281 | 10. WRF (Weather Research and Forecasting model) 282 | WRF was developed at the National Center for Atmospheric Research (NCAR) which is operated by the University Corporation for Atmospheric Research (UCAR). NCAR and UCAR make no proprietary claims, either statutory or otherwise, to this version and release of WRF and consider WRF to be in the public domain for use by any person or entity for any purpose without any fee or charge. UCAR requests that any WRF user include this notice on any partial or full copies of WRF. WRF is provided on an "AS IS" basis and any warranties, either express or implied, including but not limited to implied warranties of non-infringement, originality, merchantability and fitness for a particular purpose, are disclaimed. In no event shall UCAR be liable for any damages, whatsoever, whether direct, indirect, consequential or special, that arise out of or in connection with the access, use or performance of WRF, including infringement actions. 283 | 284 | WRF® is a registered trademark of the University Corporation for Atmospheric Research (UCAR). 285 | -------------------------------------------------------------------------------- 286 | 287 | The following third party programs have their own third party programs. These 288 | additional third party program files are as follows: 289 | 290 | 1. Intel(R) Parallel Studio XE /parallel_studio_xe_./licensingthird-party-programs.txt 291 | 2. Intel(R) Math Kernel Library (Intel(R) MKL) /compilers_and_libraries_2020.1./licensing/en/third-party-programs.txt 292 | -------------------------------------------------------------------------------- /definitionFiles/WRF/wrfBuild.def: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 Intel Corporation 2 | # Legal Notice: See README file for licensing and other important information before using this file 3 | 4 | Bootstrap: scratch 5 | 6 | ####################################### 7 | %help 8 | ######## 9 | This container build the binaries and dependencies from source codes 10 | 11 | ################################################## 12 | %pre 13 | ########### 14 | # Setup the proxies and env variables for building the code 15 | export base=`pwd` 16 | appinfo=${base}/appinfo 17 | touch ${appinfo} 18 | 19 | echo "****************appinfo of this container*************" >> ${appinfo} 20 | date >> ${appinfo} 21 | 22 | export WRF_BIN="wrf-avx512" 23 | build=${base}/build 24 | if [ ! -x "$build" ]; then 25 | mkdir $build 26 | fi 27 | export build 28 | 29 | IO_LIBS=${build}/io_libs 30 | if [ ! -d "$IO_LIBS" ]; then 31 | mkdir $IO_LIBS 32 | fi 33 | export IO_LIBS 34 | 35 | echo "Build WRF and all it dependencies" 36 | export FC=mpiifort 37 | export CXX=mpiicc 38 | export CC=mpiicc 39 | export CPP="icc -E" 40 | 41 | #******************** 42 | echo "Build CURL" 43 | #******************** 44 | cd $build 45 | curl="curl-7.64.0" ; echo "$curl" >> ${appinfo} 46 | rm -rf curl* 47 | wget https://curl.haxx.se/download/curl-7.64.0.tar.gz 48 | tar xzf curl-7.64.0.tar.gz 49 | cd $curl 50 | ./configure --prefix=${IO_LIBS} 51 | make 52 | make -j `nproc` install 2>&1 | tee -a $curl.compile.log 53 | 54 | #******************** 55 | echo "Build ZLIB" 56 | #******************** 57 | cd $build 58 | zlib="zlib-1.2.11" ; echo "$zlib" >> ${appinfo} 59 | rm -rf zlib* 60 | wget http://www.zlib.net/zlib-1.2.11.tar.gz 61 | tar xzf zlib-1.2.11.tar.gz 62 | cd $zlib 63 | ./configure --prefix=${IO_LIBS} 64 | make 65 | make -j `nproc` install 2>&1 | tee -a $zlib.compile.log 66 | 67 | #******************** 68 | echo "Build SZIP" 69 | #******************** 70 | cd $build 71 | szip="szip-2.1.1" ; echo "$szip" >> ${appinfo} 72 | rm -rf szip* 73 | wget https://support.hdfgroup.org/ftp/lib-external/szip/2.1.1/src/szip-2.1.1.tar.gz 74 | tar xzf szip-2.1.1.tar.gz 75 | cd $szip 76 | ./configure --prefix=${IO_LIBS} 77 | make 78 | make -j `nproc` install 2>&1 | tee -a $szip.compile.log 79 | 80 | #******************** 81 | echo "Build HDF5" 82 | #******************** 83 | cd $build 84 | hdf5="hdf5-1.8.21" ; echo "$hdf5" >> ${appinfo} 85 | rm -rf hdf* 86 | wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.21/src/hdf5-1.8.21.tar.gz 87 | tar xzf hdf5-1.8.21.tar.gz 88 | cd $hdf5 89 | hdf5_opts="--prefix=$IO_LIBS --with-zlib=$IO_LIBS --with-szlib=$IO_LIBS --enable-fortran --enable-hl --enable-parallel" 90 | ./configure $hdf5_opts 91 | make -j `nproc` install 2>&1 | tee -a $hdf5.compile.log 92 | echo "HDF5 finished building" 93 | 94 | #********************* 95 | echo "Build NetCDF-C" 96 | #********************* 97 | cd $build 98 | netcdfc="netcdf-c-4.6.3" ; echo "$netcdfc" >> ${appinfo} 99 | rm -rf netcdf 100 | wget -O netcdf-c-4.6.3.tar.gz https://github.com/Unidata/netcdf-c/archive/v4.6.3.tar.gz 101 | tar xzf netcdf-c-4.6.3.tar.gz 102 | cd $netcdfc 103 | export CPPFLAGS=" -I${IO_LIBS}/include" 104 | export LDFLAGS=" -L${IO_LIBS}/lib" 105 | export LIBS=" -lhdf5_hl -lhdf5 -lz -lsz -lmpi" 106 | export LD_FLAGS+=" -L${IO_LIBS}/lib" 107 | export LD_LIBRARY_PATH=${IO_LIBS}/lib:${LD_LIBRARY_PATH} 108 | ./configure --prefix=${IO_LIBS} 109 | make 110 | make -j `nproc` install 2>&1 | tee -a $netcdfc.compile.log 111 | echo " NetCDF-C finished building" 112 | 113 | #*************************** 114 | echo "Build NetCDF-Fortran" 115 | #*************************** 116 | cd $build 117 | netcdff="netcdf-fortran-4.4.5" ; echo "$netcdff" >> ${appinfo} 118 | rm -rf $netcdff 119 | wget -O netcdf-fortran-4.4.5.tar.gz https://github.com/Unidata/netcdf-fortran/archive/v4.4.5.tar.gz 120 | tar xzf netcdf-fortran-4.4.5.tar.gz 121 | cd $netcdff 122 | export CPPFLAGS=" -I${IO_LIBS}/include" 123 | export LDFLAGS=" -L${IO_LIBS}/lib" 124 | ./configure --prefix=$IO_LIBS 125 | make 126 | make -j `nproc` install 2>&1 | tee -a $netcdff.compile.log 127 | 128 | #******************** 129 | echo "Build WRF" 130 | #******************** 131 | cd $build 132 | wrf=$build/WRF-4.2.2 133 | rm -rf $wrf 134 | wget --no-check-certificate https://github.com/wrf-model/WRF/archive/v4.2.2.tar.gz 135 | tar xvf v4.2.2.tar.gz ; echo "WRFV4.2.2" >> ${appinfo} 136 | cd $wrf 137 | 138 | export J="-j 6" 139 | export WRFIO_NCD_LARGE_FILE_SUPPORT=1 140 | export WRF_EM_CORE=1 141 | 142 | export ZLIB=${IO_LIBS} 143 | export CURL=${IO_LIBS} 144 | export HDF5=${IO_LIBS} 145 | export NETCDF=${IO_LIBS} 146 | export LD_LIBRARY_PATH=${IO_LIBS}/lib:${LD_LIBRARY_PATH} 147 | 148 | ./clean -a 149 | 150 | echo "Save the rsl files to /tmp to solve the container space issue" 151 | sed -i 's@rsl.error@/tmp/rsl.error@g' external/RSL_LITE/c_code.c 152 | sed -i 's@rsl.out@/tmp/rsl.out@g' external/RSL_LITE/c_code.c 153 | 154 | ./configure <<<$'67\n1' 155 | 156 | echo "Modify configure.wrf file to include Intel optimizations" 157 | sed -i 's/-lm / -lsvml /' ./configure.wrf 158 | sed -E -i 's/^(LDFLAGS_LOCAL[[:blank:]]*=[[:blank:]]*).*/\1-ip -lsvml/' configure.wrf 159 | sed -E -i 's/^(CFLAGS_LOCAL[[:blank:]]*=[[:blank:]]*).*/\1-w -ip -xCORE-AVX2/' configure.wrf 160 | sed -E -i 's/^(FCBASEOPTS_NO_G[[:blank:]]*=[[:blank:]]*).*/\1-ip -w -ftz -align array64byte -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) -fp-model fast=2 -fimf-use-svml=true -inline-max-size=12000 -inline-max-total-size=30000 -vec-threshold0 -qno-opt-dynamic-align -xCORE-AVX2/' configure.wrf 161 | sed -E -i 's/^(ARCH_LOCAL[[:blank:]]*=[[:blank:]]*).*/\1-DNONSTANDARD_SYSTEM_FUNC -DRPC_TYPES=2 -DXEON_SIMD/' configure.wrf 162 | sed -E -i 's/^(FCOPTIM[[:blank:]]*=[[:blank:]]*).*/\1-O3/' configure.wrf 163 | 164 | ./compile -j 20 wrf 2>&1 | tee -a compile.log 165 | 166 | echo "build config:" >> ${appinfo} 167 | grep "CFLAGS_LOCAL" compile.log >> ${appinfo} 168 | which icc >> ${appinfo} 169 | icc --version >> ${appinfo} 170 | mpirun --version >> ${appinfo} 171 | 172 | cd $base 173 | cp -rf ${IO_LIBS} $WRF_BIN/ 174 | cp -rf ${build}/WRF-4.2.2 $WRF_BIN/ 175 | cp -rf ${appinfo} $WRF_BIN/ 176 | -------------------------------------------------------------------------------- /definitionFiles/WRF/wrfRun.def: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 Intel Corporation 2 | # Legal Notice: See README file for licensing and other important information before using this file. 3 | 4 | Bootstrap: localimage 5 | From: /tmp/base.simg 6 | 7 | ################################ 8 | %help 9 | ################################ 10 | WRF benchmark files are not part of the container for WRF because they are too large. You must download them by : 11 | wget https://www2.mmm.ucar.edu/wrf/src/conus12km.tar.gz 12 | wget https://www2.mmm.ucar.edu/wrf/src/conus2.5km.tar.gz 13 | *** Only conus2.5km is automated in this recipe 14 | 15 | ##### 16 | USAGE: 17 | 18 | After the container run is completed, the output files will be located at the $HOME/$APPNAME/$DATE" 19 | 20 | - Available apps: 21 | $ singularity apps 22 | singlenode 23 | multinode 24 | multinodeResults 25 | sysinfo 26 | appinfo 27 | clean 28 | 29 | - Run on single node: 30 | $ singularity run -B <$BENCH_DIR>:/benchmark --writable-tmpfs --app singlenode wrf.simg 31 | 32 | Example to run on a 64 cores ICX system: 33 | untar the conus2.5km.tar.gz and mount it to the /benchmark dir inside the container: 34 | ulimit -s unlimited 35 | export I_MPI_PIN_DOMAIN=auto 36 | export I_MPI_PIN_ORDER=bunch 37 | export I_MPI_DEBUG=5 38 | export OMP_NUM_THREADS=1 39 | export OMP_PLACES=cores 40 | export OMP_PROC_BIND=close 41 | export KMP_STACKSIZE=512M 42 | export WRF_NUM_TILES=90 43 | export WRFIO_NCD_LARGE_FILE_SUPPORT=1 44 | $ singularity run -B conus2.5km:/benchmark --writable-tmpfs --app singlenode wrf.simg 45 | 46 | Example to run from inside the container: 47 | $ singularity shell -B conus2.5km:/benchmark --app singlenode wrf.simg 48 | $ cd $WORKDIR/WRFV3/run 49 | $ ln -s /benchmark/wrfbdy_d01 wrfbdy_d01 50 | $ ln -s /benchmark/wrfrst_$xxx.. wrfrst_$xxx... 51 | $ ln -s /benchmark/namelist.input namelist.input 52 | $ mpirun -genvall -n $NUMCORES --ppn $NUMCORES ./wrf.exe |tee $log 53 | $ cd $WORKDIR/scripts 54 | $ cp /tmp/rsl.error.0000 . 55 | $ ./postproc.sh rsl.error.0000 |tee -a # to parse the results 56 | 57 | - Multinode node run as: 58 | $ singularity help --app multinode 59 | 60 | - Parse the results for multinode run: 61 | $ singularity run --app multinodeResults 62 | 63 | - To write results to your directory of choice (default is $HOME), set the CUSTOM_RESULTS_DIR variable at runtime as: 64 | $ SINGULARITYENV_CUSTOM_RESULTS_DIR=/tmp/candy singularity run --app $APPNAME container.simg 65 | OR 66 | $ export SINGULARITYENV_CUSTOM_RESULTS_DIR=/tmp/candy 67 | $ singularity run .... 68 | ################################ 69 | %environment 70 | ################################ 71 | now=`date '+%Y_%m_%d'` 72 | hostname=`hostname` 73 | 74 | APPNAME="wrf" 75 | RESULTS_DIR=${HOME}/${APPNAME} 76 | LOG="${APPNAME}.log" 77 | RESULTS="${APPNAME}.results" 78 | CSV="${APPNAME}.csv" 79 | SYSCONFIG="${hostname}_${APPNAME}.sysconfig" 80 | APPINFO="${hostname}_${APPNAME}.appinfo" 81 | 82 | WORKDIR=$SINGULARITY_ROOTFS/WORKSPACE 83 | export APPNAME LOG RESULTS CSV SYSCONFIG WORKDIR now hostname RESULTS_DIR APPINFO 84 | 85 | export IO_LIBS=${WORKDIR}/io_libs 86 | export LD_LIBRARY_PATH=${IO_LIBS}/lib:${LD_LIBRARY_PATH} 87 | ############################### 88 | %apprun singlenode 89 | ################################ 90 | if [ ! -x "$RESULTS_DIR" ]; then 91 | mkdir -p "$RESULTS_DIR" 92 | fi 93 | echo > $RESULTS_DIR/$RESULTS 94 | 95 | cd $WORKDIR/WRF-4.2.2/run 96 | 97 | CORES=`lscpu | grep "Core(s) per socket" | awk '{print $4}'` 98 | SOCKETS=`lscpu | grep Socket | awk '{print $2}'` 99 | THREADS=`lscpu | grep "Thread" | awk '{print $4}'` 100 | 101 | if [ -z "$NUMCORES" ]; then 102 | NUMCORES=$((CORES * SOCKETS)) 103 | echo "You didn't specify arguments. So running with NUMCORES=$NUMCORES" 104 | fi 105 | 106 | rm -rf wrfbdy_d01 namelist.input wrfrst* 107 | ln -s /benchmark/wrfbdy_d01 wrfbdy_d01 108 | ln -s /benchmark/namelist.input.rst namelist.input 109 | ln -s /benchmark/wrfrst* wrfrst_d01_2019-11-26_23:00:00 110 | 111 | ln -s /benchmark/freezeH2O.dat freezeH2O.dat 112 | ln -s /benchmark/qr_acr_qg.dat qr_acr_qg.dat 113 | ln -s /benchmark/qr_acr_qgV2.dat qr_acr_qgV2.dat 114 | ln -s /benchmark/qr_acr_qs.dat qr_acr_qs.dat 115 | ln -s /benchmark/qr_acr_qsV2.dat qr_acr_qsV2.dat 116 | 117 | log="${RESULTS_DIR}/${LOG}.singlenode" 118 | rm -rf $log 119 | rm -rf /tmp/rsl* 120 | touch $log 121 | 122 | echo "Running: mpirun -genvall -n $NUMCORES -ppn $NUMCORES ./wrf.exe " 123 | mpiexec.hydra -genvall -n $NUMCORES --ppn $NUMCORES ./wrf.exe 124 | 125 | rsl="rsl.error.0000" 126 | cp -rf /tmp/$rsl $log 127 | cd $WORKDIR/scripts 128 | 129 | results=$RESULTS_DIR/$RESULTS.singlenode 130 | rm -rf $results 131 | touch $results 132 | echo " The performance is in seconds per timestep" 133 | grep 'Timing for main' $log | awk '{print $9}' | tail -n719 | awk -f domain.awk > $results 134 | 135 | echo "Figure of merit : ` grep -m 1 mean $results` s/timestep " |tee -a $results.FOM 136 | awk 'BEGIN{print "WORKLOAD,FOM,UNIT"}{print "CONUS"","$6","$7}' $results.FOM >> $RESULTS_DIR/$CSV 137 | echo " " >> $RESULTS_DIR/$CSV 138 | 139 | echo "Output files are located at the $RESULTS_DIR" 140 | rm -r /tmp/rsl* 141 | 142 | ################### 143 | %appenv multinode 144 | ################### 145 | cd $WORKDIR/WRF-4.2.2/run 146 | rm -rf wrfbdy_d01 namelist.input wrfrst* 147 | ln -s /benchmark/wrfbdy_d01 wrfbdy_d01 148 | ln -s /benchmark/namelist.input.rst namelist.input 149 | ln -s /benchmark/wrfrst* wrfrst_d01_2019-11-26_23:00:00 150 | 151 | ln -s /benchmark/freezeH2O.dat freezeH2O.dat 152 | ln -s /benchmark/qr_acr_qg.dat qr_acr_qg.dat 153 | ln -s /benchmark/qr_acr_qgV2.dat qr_acr_qgV2.dat 154 | ln -s /benchmark/qr_acr_qs.dat qr_acr_qs.dat 155 | ln -s /benchmark/qr_acr_qsV2.dat qr_acr_qsV2.dat 156 | ################################ 157 | %apprun multinode 158 | ################################ 159 | results_dir=${RESULTS_DIR}/wrf.multinode 160 | 161 | if [ ! -x "$results_dir" ]; then 162 | mkdir -p $results_dir 163 | fi 164 | 165 | cd $WORKDIR/WRF-4.2.2/run 166 | 167 | rm -rf /tmp/rsl* 168 | ./wrf.exe 169 | 170 | yes | cp -rf /tmp/rsl.error.0000 ${results_dir}/ 2>/dev/null 171 | 172 | exit 0 173 | ########################## 174 | %apprun multinodeResults 175 | ######################### 176 | CSV="multinode-$CSV" 177 | 178 | cd $WORKDIR/scripts 179 | grep 'Timing for main' ${RESULTS_DIR}/rsl.error.0000 | awk '{print $9}' | tail -n719 | awk -f domain.awk > ${RESULTS_DIR}/$RESULTS 180 | 181 | echo "Figure of merit : ` grep -m 1 mean ${RESULTS_DIR}/$RESULTS` s/timestep " |tee ${RESULTS_DIR}/$RESULTS.FOM 182 | awk 'BEGIN{print "WORKLOAD,FOM,UNIT"}{print "CONUS"","$6","$7}' ${RESULTS_DIR}/$RESULTS.FOM >> ${RESULTS_DIR}/$CSV 183 | 184 | echo "Resuls located in ${RESULTS_DIR}" 185 | 186 | ################################ 187 | %setup 188 | ################################ 189 | # Create a work directory inside the container 190 | export WORKDIR="$SINGULARITY_ROOTFS/WORKSPACE" 191 | mkdir -p $WORKDIR 192 | mkdir -p "$SINGULARITY_ROOTFS/benchmark" 193 | 194 | ARCH="avx512" 195 | APP="wrf" 196 | BIN="$location/$APP-$ARCH" 197 | 198 | # Copy all the binaries and anything else needed to run your binaries 199 | cp -r $BIN/* $WORKDIR/ 200 | cp -r ${APP}/* -P $WORKDIR/ 201 | cp sysinfo.sh -P $WORKDIR/ 202 | 203 | chmod -R 777 $WORKDIR/* 204 | 205 | exit 0 206 | 207 | ############### 208 | %apprun sysinfo 209 | ############### 210 | echo "Getting system configuration" 211 | cd $WORKDIR 212 | ./sysinfo.sh > ${RESULTS_DIR}/$SYSCONFIG 213 | 214 | echo "The $SYSCONFIG is located at $RESULTS_DIR" 215 | ############################################### 216 | %apprun appinfo 217 | ################# 218 | if [ ! -x "$RESULTS_DIR" ]; then 219 | mkdir -p $RESULTS_DIR 220 | fi 221 | head -40 $WORKDIR/WRF-4.2.2/compile.log 222 | 223 | echo " " 224 | echo "-----------------------------" 225 | echo "expected perf to use as a baseline on SKL baremetal:" 226 | cat $WORKDIR/appinfo |tee $RESULTS_DIR/$APPINFO 227 | 228 | ############################################### 229 | %apprun clean 230 | ############# 231 | echo "deleting folder $RESULTS_DIR" 232 | rm -rf $RESULTS_DIR 233 | 234 | -------------------------------------------------------------------------------- /definitionFiles/base/Licence.txt: -------------------------------------------------------------------------------- 1 | Copyright 2020 Intel Corporation 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /definitionFiles/base/README.md: -------------------------------------------------------------------------------- 1 | # Intel-Hpc-Containers 2 | 3 | - LEGAL NOTICE: By downloading and using this container or script as applicable (the “Software Package”) and the included software or software made available for download, you agree to the terms and conditions of the software license agreements for the Software Package, which may also include notices, disclaimers, or license terms for third party software (together, the “Agreements”) included in this README file 4 | - This Singularity definition file will automatically download : 5 | 6 | * CentOS 7 | - (http://mirror.centos.org) 8 | - (http://mirror.centos.org/centos/7/os/x86_64/EULA) 9 | - Licenses for this bundle are also accessible through the shell at /usr/share/licenses/ 10 | * Intel® Parallel Studio XE Runtime 2020 11 | - (https://yum.repos.intel.com/2020/setup/RPM-GPG-KEY-intel-psxe-runtime-2020) 12 | - (https://software.intel.com/en-us/license/end-user-license-agreement-for-the-intel-compiler-runtime-libraries) 13 | 14 | 15 | -------------------------------------------------------------- 16 | Create containers with Singularity version 3.x for HPC apps for Single and Cluster runs for Intel avx512 enabled plarforms: 17 | 18 | o The Singularity definition file will require these programs to be pre-installed: 19 | 20 | - GCC7.3 21 | - Singularity 3.x version 22 | - Super user access to the system 23 | - Centos (for other OSs, you will need to modify the instructions/recipe accordingly) 24 | 25 | 26 | Instructions to build a container: 27 | 28 | 1. Build the base container that includes the OS, Intel runtime libraries, and some independencies . Build it from definition file as: 29 | 30 | `$ sudo singularity build /tmp/base.simg base.def` 31 | 32 | **Run instructions**: 33 | 34 | `$ singularity run-help ` 35 | 36 | -------------------------------------------------------------------------------- /definitionFiles/base/TPP.txt: -------------------------------------------------------------------------------- 1 | “Base container definition file” Third Party Programs File 2 | This file contains the list of third party software (“third party programs”) contained in the Intel software and their required notices and/or license terms. This third party software, even if included with the distribution of the Intel software, may be governed by separate license terms, including without limitation, third party license terms, other Intel software license terms, and open source software license terms. These separate license terms govern your use of the third party programs as set forth in the “third-party-programs.txt” or other similarly-named text file. 3 | 4 | Third party programs and their corresponding required notices and/or license terms are listed below. 5 | ------------------------------------------------------------- 6 | 1. Singularity 3.5 7 | Copyright (c) 2015-2017, Gregory M. Kurtzer. All rights reserved. 8 | Copyright (c) 2016-2017, The Regents of the University of California. All right reserved. 9 | Copyright (c) 2017, SingularityWare, LLC. All rights reserved. 10 | Copyright (c) 2018-2019, Sylabs, Inc. All rights reserved. 11 | 12 | The 3-Clause BSD 13 | 14 | Redistribution and use in source and binary forms, with or without 15 | modification, are permitted provided that the following conditions are met: 16 | 17 | 1. Redistributions of source code must retain the above copyright notice, 18 | this list of conditions and the following disclaimer. 19 | 20 | 2. Redistributions in binary form must reproduce the above copyright notice, 21 | this list of conditions and the following disclaimer in the documentation 22 | and/or other materials provided with the distribution. 23 | 24 | 3. Neither the name of the copyright holder nor the names of its 25 | contributors may be used to endorse or promote products derived from this 26 | software without specific prior written permission. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 29 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 30 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 31 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 32 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 33 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 34 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 35 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 36 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 37 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | POSSIBILITY OF SUCH DAMAGE. 39 | ------------------------------------------------------------- 40 | ------------------------------------------------------------- 41 | 2. Centos 42 | CentOS Linux 7 EULA 43 | 44 | CentOS Linux 7 comes with no guarantees or warranties of any sorts, 45 | either written or implied. 46 | 47 | The Distribution is released as GPLv2. Individual packages in the 48 | distribution come with their own licences. 49 | ------------------------------------------------------------- 50 | 3. GCC 51 | 52 | 53 | GPL 54 | There are two licenses affecting GNU libstdc++: one for the code, and one for the documentation. 55 | There is a license section in the FAQ regarding common questions. If you have more questions, ask the FSF or the gcc mailing list. 56 | The Code: GPL 57 | The source code is distributed under the GNU General Public License version 3, with the addition under section 7 of an exception described in the “GCC Runtime Library Exception, version 3.1” as follows (or see the file COPYING.RUNTIME): 58 | 59 | GCC RUNTIME LIBRARY EXCEPTION 60 | 61 | Version 3.1, 31 March 2009 62 | 63 | Copyright (C) 2009 Free Software Foundation, Inc. 64 | 65 | Everyone is permitted to copy and distribute verbatim copies of this 66 | license document, but changing it is not allowed. 67 | 68 | This GCC Runtime Library Exception ("Exception") is an additional 69 | permission under section 7 of the GNU General Public License, version 70 | 3 ("GPLv3"). It applies to a given file (the "Runtime Library") that 71 | bears a notice placed by the copyright holder of the file stating that 72 | the file is governed by GPLv3 along with this Exception. 73 | 74 | When you use GCC to compile a program, GCC may combine portions of 75 | certain GCC header files and runtime libraries with the compiled 76 | program. The purpose of this Exception is to allow compilation of 77 | non-GPL (including proprietary) programs to use, in this way, the 78 | header files and runtime libraries covered by this Exception. 79 | 80 | 0. Definitions. 81 | 82 | A file is an "Independent Module" if it either requires the Runtime 83 | Library for execution after a Compilation Process, or makes use of an 84 | interface provided by the Runtime Library, but is not otherwise based 85 | on the Runtime Library. 86 | 87 | "GCC" means a version of the GNU Compiler Collection, with or without 88 | modifications, governed by version 3 (or a specified later version) of 89 | the GNU General Public License (GPL) with the option of using any 90 | subsequent versions published by the FSF. 91 | 92 | "GPL-compatible Software" is software whose conditions of propagation, 93 | modification and use would permit combination with GCC in accord with 94 | the license of GCC. 95 | 96 | "Target Code" refers to output from any compiler for a real or virtual 97 | target processor architecture, in executable form or suitable for 98 | input to an assembler, loader, linker and/or execution 99 | phase. Notwithstanding that, Target Code does not include data in any 100 | format that is used as a compiler intermediate representation, or used 101 | for producing a compiler intermediate representation. 102 | 103 | The "Compilation Process" transforms code entirely represented in 104 | non-intermediate languages designed for human-written code, and/or in 105 | Java Virtual Machine byte code, into Target Code. Thus, for example, 106 | use of source code generators and preprocessors need not be considered 107 | part of the Compilation Process, since the Compilation Process can be 108 | understood as starting with the output of the generators or 109 | preprocessors. 110 | 111 | A Compilation Process is "Eligible" if it is done using GCC, alone or 112 | with other GPL-compatible software, or if it is done without using any 113 | work based on GCC. For example, using non-GPL-compatible Software to 114 | optimize any GCC intermediate representations would not qualify as an 115 | Eligible Compilation Process. 116 | 117 | 1. Grant of Additional Permission. 118 | 119 | You have permission to propagate a work of Target Code formed by 120 | combining the Runtime Library with Independent Modules, even if such 121 | propagation would otherwise violate the terms of GPLv3, provided that 122 | all Target Code was generated by Eligible Compilation Processes. You 123 | may then convey such a combination under terms of your choice, 124 | consistent with the licensing of the Independent Modules. 125 | 126 | 2. No Weakening of GCC Copyleft. 127 | 128 | The availability of this Exception does not imply any general 129 | presumption that third-party software is unaffected by the copyleft 130 | requirements of the license of GCC. 131 | 132 | Hopefully that text is self-explanatory. If it isn't, you need to speak to your lawyer, or the Free Software Foundation. 133 | The Documentation: GPL, FDL 134 | The documentation shipped with the library and made available over the web, excluding the pages generated from source comments, are copyrighted by the Free Software Foundation, and placed under the GNU Free Documentation License version 1.3. There are no Front-Cover Texts, no Back-Cover Texts, and no Invariant Sections. 135 | For documentation generated by doxygen or other automated tools via processing source code comments and markup, the original source code license applies to the generated files. Thus, the doxygen documents are licensed GPL. 136 | If you plan on making copies of the documentation, please let us know. We can probably offer suggestions. 137 | ---------------------------------------------------------------------------------------------------- 138 | 4. Intel® Parallel Studio XE Runtime 2020 139 | 140 | Intel Simplified Software License (Version February 2020) 141 | Use and Redistribution. You may use and redistribute the software (the “Software”), without modification, provided the following conditions are met: 142 | • Redistributions must reproduce the above copyright notice and the following terms of use in the Software and in the documentation and/or other materials provided with the distribution. 143 | • Neither the name of Intel nor the names of its suppliers may be used to endorse or promote products derived from this Software without specific prior written permission. 144 | • No reverse engineering, decompilation, or disassembly of this Software is permitted. 145 | Limited patent license. Intel grants you a world-wide, royalty-free, non-exclusive license under patents it now or hereafter owns or controls to make, have made, use, import, offer to sell and sell (“Utilize”) this Software, but solely to the extent that any such patent is necessary to Utilize the Software alone. The patent license shall not apply to any combinations which include this software. No hardware per se is licensed hereunder. 146 | Third party programs. The Software may contain Third Party Programs. “Third Party Programs” are third party software, open source software or other Intel software listed in the “third-party-programs.txt” or other similarly named text file that is included with the Software. Third Party Programs, even if included with the distribution of the Software, may be governed by separate license terms, including without limitation, third party license terms, open source software notices and terms, and/or other Intel software license terms. These separate license terms may govern your use of the Third Party Programs. 147 | DISCLAIMER. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED. THIS SOFTWARE IS NOT INTENDED FOR USE IN SYSTEMS OR APPLICATIONS WHERE FAILURE OF THE SOFTWARE MAY CAUSE PERSONAL INJURY OR DEATH AND YOU AGREE THAT YOU ARE FULLY RESPONSIBLE FOR ANY CLAIMS, COSTS, DAMAGES, EXPENSES, AND ATTORNEYS’ FEES ARISING OUT OF ANY SUCH USE, EVEN IF ANY CLAIM ALLEGES THAT INTEL WAS NEGLIGENT REGARDING THE DESIGN OR MANUFACTURE OF THE MATERIALS. 148 | LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. YOU AGREE TO INDEMNIFY AND HOLD INTEL HARMLESS AGAINST ANY CLAIMS AND EXPENSES RESULTING FROM YOUR USE OR UNAUTHORIZED USE OF THE SOFTWARE. 149 | No support. Intel may make changes to the Software, at any time without notice, and is not obligated to support, update or provide training for the Software. 150 | Termination. Intel may terminate your right to use the Software in the event of your breach of this Agreement and you fail to cure the breach within a reasonable period of time. 151 | Feedback. Should you provide Intel with comments, modifications, corrections, enhancements or other input (“Feedback”) related to the Software Intel will be free to use, disclose, reproduce, license or otherwise distribute or exploit the Feedback in its sole discretion without any obligations or restrictions of any kind, including without limitation, intellectual property rights or licensing obligations. 152 | Compliance with laws. You agree to comply with all relevant laws and regulations governing your use, transfer, import or export (or prohibition thereof) of the Software. 153 | Governing law. All disputes will be governed by the laws of the United States of America and the State of Delaware without reference to conflict of law principles and subject to the exclusive jurisdiction of the state or federal courts sitting in the State of Delaware, and each party agrees that it submits to the personal jurisdiction and venue of those courts and waives any objections. The United Nations Convention on Contracts for the International Sale of Goods (1980) is specifically excluded and will not apply to the Software. 154 | *Other names and brands may be claimed as the property of others. 155 | 156 | -------------------------------------------------------------------------------- /definitionFiles/base/base.def: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020 Intel Corporation 2 | # This software ("Software"), when executed, will install programs (â"Programs") that are governed by separate license terms, including without limitation, third party license terms, other Intel software license terms, and open source software license terms. Such separate license terms solely govern your use of the Programs. A list of the license terms for the Programs can be found in the third-party-programs.txt file included with the distribution of the Software." 3 | 4 | Bootstrap: docker 5 | From: centos:7 6 | 7 | ####################################### 8 | %help 9 | This container contains the base image (OS, Intel runtime libraries, Interconnect libs...) 10 | 11 | #################################################### 12 | %post 13 | ##### 14 | # proxy settings 15 | 16 | yum install -y sudo git wget vi which tree 17 | yum install -y hostname lscpu uptime redhat-lsb numactl 18 | 19 | rpm --import https://yum.repos.intel.com/2020/setup/RPM-GPG-KEY-intel-psxe-runtime-2020 20 | rpm -Uhv https://yum.repos.intel.com/2020/setup/intel-psxe-runtime-2020-reposetup-1-0.noarch.rpm 21 | 22 | yum --showduplicates list intel-psxe-runtime 23 | yum install -y intel-psxe-runtime 24 | 25 | #Install needed dependences 26 | yum install -y epel-release centos-release-scl && yum -y update && yum clean all 27 | yum group install -y "Development Tools" && yum clean all 28 | yum install -y devtoolset-8-gcc* && yum clean all 29 | 30 | ln -s /opt/intel/psxe_runtime/linux/ /mnt/ 31 | 32 | ###################### 33 | %environment 34 | ##################### 35 | export PATH=/opt/rh/devtoolset-8/root/bin:$PATH 36 | export LD_LIBRARY_PATH=/opt/rh/devtoolset-8/root/lib64:$LD_LIBRARY_PATH 37 | 38 | source /opt/intel/psxe_runtime/linux/bin/compilervars.sh intel64 39 | source /opt/intel/psxe_runtime/linux/tbb/bin/tbbvars.sh intel64 40 | source /opt/intel/psxe_runtime/linux/mkl/bin/mklvars.sh intel64 41 | source /opt/intel/psxe_runtime/linux/mpi/intel64/bin/mpivars.sh 42 | 43 | ##################### 44 | %runscript 45 | which mpirun 46 | gcc --version 47 | 48 | exec "$@" 49 | -------------------------------------------------------------------------------- /definitionFiles/gromacs/Licence.txt: -------------------------------------------------------------------------------- 1 | Copyright 2020 Intel Corporation 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /definitionFiles/gromacs/README.md: -------------------------------------------------------------------------------- 1 | # Intel-Hpc-Containers 2 | 3 | - LEGAL NOTICE: By downloading and using this build file (the “Software Package”) and the included software or software made available for download, you agree to the terms and conditions of the software license agreements for the Software Package, which may also include notices, disclaimers, or license terms for third party software (together, the “Agreements”) included in this README file. 4 | 5 | - This Singularity definition file will automatically download : 6 | 7 | * GROMACS under GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 8 | - Download Location: (http://www.gromacs.org) 9 | - License: (http://www.gromacs.org/About_Gromacs) 10 | * GROMACS Benchmark Files that are Public Domain 11 | 12 | -------------------------------------------------------------- 13 | Create containers with Singularity version 3.x for HPC apps for Single and Cluster runs for Intel avx512 enabled plarforms: 14 | 15 | o The Singularity definition file will require these programs to be pre-installed: 16 | 17 | - Singularity 3.x version (https://sylabs.io/guides/3.5/admin-guide/installation.html) 18 | - Intel® Parallel Studio XE (https://software.intel.com/content/www/us/en/develop/tools/parallel-studio-xe/choose-download.html) 19 | - Super user access to the system 20 | - Centos (for other OSs, you will need to modify the instructions/recipe accordingly) 21 | 22 | 23 | Instructions to build a container: 24 | 25 | 1. Build the binaries and dependencies from the Build definition file : 26 | 27 | `$ sudo singularity build ` 28 | 29 | This will generate the binaries that you will need in step #3 and a dummy container that you can just use or ignore 30 | 31 | 32 | 2. Build the base container that includes the OS, Intel runtime libraries, and some independencies . Build it from the base https://github.com/intel/HPC-containers-from-Intel/blob/master/definitionFiles/base/base.def recipe as: 33 | 34 | `$ sudo singularity build /tmp/base.simg base` 35 | 36 | 37 | 3. Build the container . You may need to adjust and tweak the recipe a little bit to point out to your binaries, programs, and dependencies. You will need: 38 | 39 | * The binaries from step #1 40 | * The /tmp/base.simg container from step #2 41 | 42 | `$ sudo singularity build --force ` 43 | 44 | 45 | **Run instructions**: 46 | 47 | `$ singularity run-help ` 48 | 49 | -------------------------------------------------------------------------------- /definitionFiles/gromacs/TPP.txt: -------------------------------------------------------------------------------- 1 | “GROMACS container definition file” Third Party Programs File 2 | This file contains the list of third party software (“third party programs”) contained in the Intel software and their required notices and/or license terms. This third party software, even if included with the distribution of the Intel software, may be governed by separate license terms, including without limitation, third party license terms, other Intel software license terms, and open source software license terms. These separate license terms govern your use of the third party programs as set forth in the “third-party-programs.txt” or other similarly-named text file. 3 | 4 | Third party programs and their corresponding required notices and/or license terms are listed below. 5 | ------------------------------------------------------------- 6 | 1. Singularity 3.5 7 | Copyright (c) 2015-2017, Gregory M. Kurtzer. All rights reserved. 8 | Copyright (c) 2016-2017, The Regents of the University of California. All right reserved. 9 | Copyright (c) 2017, SingularityWare, LLC. All rights reserved. 10 | Copyright (c) 2018-2019, Sylabs, Inc. All rights reserved. 11 | 12 | The 3-Clause BSD 13 | 14 | Redistribution and use in source and binary forms, with or without 15 | modification, are permitted provided that the following conditions are met: 16 | 17 | 1. Redistributions of source code must retain the above copyright notice, 18 | this list of conditions and the following disclaimer. 19 | 20 | 2. Redistributions in binary form must reproduce the above copyright notice, 21 | this list of conditions and the following disclaimer in the documentation 22 | and/or other materials provided with the distribution. 23 | 24 | 3. Neither the name of the copyright holder nor the names of its 25 | contributors may be used to endorse or promote products derived from this 26 | software without specific prior written permission. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 29 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 30 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 31 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 32 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 33 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 34 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 35 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 36 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 37 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | POSSIBILITY OF SUCH DAMAGE. 39 | ------------------------------------------------------------- 40 | ------------------------------------------------------------- 41 | 2. Centos 42 | CentOS Linux 7 EULA 43 | 44 | CentOS Linux 7 comes with no guarantees or warranties of any sorts, 45 | either written or implied. 46 | 47 | The Distribution is released as GPLv2. Individual packages in the 48 | distribution come with their own licences. 49 | 50 | --------------------------------------------------------------------------------------------------- 51 | 3. Intel® Parallel Studio XE Runtime 2020 52 | 53 | Intel Simplified Software License (Version February 2020) 54 | Use and Redistribution. You may use and redistribute the software (the “Software”), without modification, provided the following conditions are met: 55 | • Redistributions must reproduce the above copyright notice and the following terms of use in the Software and in the documentation and/or other materials provided with the distribution. 56 | • Neither the name of Intel nor the names of its suppliers may be used to endorse or promote products derived from this Software without specific prior written permission. 57 | • No reverse engineering, decompilation, or disassembly of this Software is permitted. 58 | Limited patent license. Intel grants you a world-wide, royalty-free, non-exclusive license under patents it now or hereafter owns or controls to make, have made, use, import, offer to sell and sell (“Utilize”) this Software, but solely to the extent that any such patent is necessary to Utilize the Software alone. The patent license shall not apply to any combinations which include this software. No hardware per se is licensed hereunder. 59 | Third party programs. The Software may contain Third Party Programs. “Third Party Programs” are third party software, open source software or other Intel software listed in the “third-party-programs.txt” or other similarly named text file that is included with the Software. Third Party Programs, even if included with the distribution of the Software, may be governed by separate license terms, including without limitation, third party license terms, open source software notices and terms, and/or other Intel software license terms. These separate license terms may govern your use of the Third Party Programs. 60 | DISCLAIMER. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED. THIS SOFTWARE IS NOT INTENDED FOR USE IN SYSTEMS OR APPLICATIONS WHERE FAILURE OF THE SOFTWARE MAY CAUSE PERSONAL INJURY OR DEATH AND YOU AGREE THAT YOU ARE FULLY RESPONSIBLE FOR ANY CLAIMS, COSTS, DAMAGES, EXPENSES, AND ATTORNEYS’ FEES ARISING OUT OF ANY SUCH USE, EVEN IF ANY CLAIM ALLEGES THAT INTEL WAS NEGLIGENT REGARDING THE DESIGN OR MANUFACTURE OF THE MATERIALS. 61 | LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. YOU AGREE TO INDEMNIFY AND HOLD INTEL HARMLESS AGAINST ANY CLAIMS AND EXPENSES RESULTING FROM YOUR USE OR UNAUTHORIZED USE OF THE SOFTWARE. 62 | No support. Intel may make changes to the Software, at any time without notice, and is not obligated to support, update or provide training for the Software. 63 | Termination. Intel may terminate your right to use the Software in the event of your breach of this Agreement and you fail to cure the breach within a reasonable period of time. 64 | Feedback. Should you provide Intel with comments, modifications, corrections, enhancements or other input (“Feedback”) related to the Software Intel will be free to use, disclose, reproduce, license or otherwise distribute or exploit the Feedback in its sole discretion without any obligations or restrictions of any kind, including without limitation, intellectual property rights or licensing obligations. 65 | Compliance with laws. You agree to comply with all relevant laws and regulations governing your use, transfer, import or export (or prohibition thereof) of the Software. 66 | Governing law. All disputes will be governed by the laws of the United States of America and the State of Delaware without reference to conflict of law principles and subject to the exclusive jurisdiction of the state or federal courts sitting in the State of Delaware, and each party agrees that it submits to the personal jurisdiction and venue of those courts and waives any objections. The United Nations Convention on Contracts for the International Sale of Goods (1980) is specifically excluded and will not apply to the Software. 67 | *Other names and brands may be claimed as the property of others. 68 | -------------------------------------------------------------------------------- 69 | 4. GROMACS 70 | GNU LESSER GENERAL PUBLIC LICENSE 71 | Version 3, 29 June 2007 72 | 73 | Copyright © 2007 Free Software Foundation, Inc. 74 | 75 | Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 76 | 77 | This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 78 | 0. Additional Definitions. 79 | As used herein, “this License” refers to version 3 of the GNU Lesser General Public License, and the “GNU GPL” refers to version 3 of the GNU General Public License. 80 | “The Library” refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. 81 | An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. 82 | A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the “Linked Version”. 83 | The “Minimal Corresponding Source” for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. 84 | The “Corresponding Application Code” for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 85 | 1. Exception to Section 3 of the GNU GPL. 86 | You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 87 | 2. Conveying Modified Versions. 88 | If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: 89 |  a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or 90 |  b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 91 | 3. Object Code Incorporating Material from Library Header Files. 92 | The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: 93 |  a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. 94 |  b) Accompany the object code with a copy of the GNU GPL and this license document. 95 | 4. Combined Works. 96 | You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: 97 |  a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. 98 |  b) Accompany the Combined Work with a copy of the GNU GPL and this license document. 99 |  c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. 100 |  d) Do one of the following: 101 | o 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 102 | o 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. 103 |  e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 104 | 5. Combined Libraries. 105 | You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: 106 |  a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. 107 |  b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 108 | 6. Revised Versions of the GNU Lesser General Public License. 109 | The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. 110 | Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. 111 | If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. 112 | 113 | -------------------------------------------------------------------------------- 114 | 115 | The following third party programs have their own third party programs. These 116 | additional third party program files are as follows: 117 | 118 | 1. Intel(R) Parallel Studio XE /parallel_studio_xe_./licensingthird-party-programs.txt 119 | 2. Intel(R) Math Kernel Library (Intel(R) MKL) /compilers_and_libraries_2020.1./licensing/en/third-party-programs.txt 120 | -------------------------------------------------------------------------------- /definitionFiles/gromacs/gromacsBuild.def: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020 Intel Corporation 2 | # Legal Notice: See README file for licensing and other important information before using this file. 3 | 4 | Bootstrap: scratch 5 | 6 | #################################################################################### 7 | %help 8 | ###### 9 | This container build the binaries and dependencies from source codes 10 | 11 | ################################################################################# 12 | %pre 13 | ####### 14 | # source your compiler here like: 15 | 16 | version="2019.4.243" 17 | compiler="compilers_and_libraries_${version}" 18 | source /opt/intel/${compiler}/linux/bin/compilervars.sh intel64 19 | source /opt/intel/${compiler}/linux/mpi/intel64/bin/mpivars.sh 20 | 21 | export PATH=/opt/intel/cmake/bin:$PATH 22 | export base=`pwd` 23 | export WORKDIR="$SINGULARITY_ROOTFS/gromacs" 24 | 25 | ################################################################## 26 | %pre 27 | ################################ 28 | cd $base 29 | echo "Get the codes and any dependencies" 30 | 31 | rm -rf gromacs 32 | wget http://ftp.gromacs.org/pub/gromacs/gromacs-2019.tar.gz 33 | 34 | mkdir $base/gromacs 35 | tar -xvf gromacs-*.gz --strip-components=1 -C $base/gromacs 36 | echo "Build the code " 37 | installDir=$base/gromacs/installDir 38 | mkdir $installDir 39 | cd $base/gromacs/src 40 | 41 | echo "apply a work around due to a bug in the compiler" 42 | sed -i -e '469 i #ifdef __INTEL_COMPILER //Bug in (at least) 19u1 and 18u5 (03424712)' $base/gromacs/src/gromacs/simd/tests/simd_floatingpoint_util.cpp 43 | sed -i -e '470 i #pragma novector' $base/gromacs/src/gromacs/simd/tests/simd_floatingpoint_util.cpp 44 | sed -i -e '471 i #endif' $base/gromacs/src/gromacs/simd/tests/simd_floatingpoint_util.cpp 45 | 46 | FLAGS="-xCORE-AVX512"; CFLAGS=$FLAGS CXXFLAGS=$FLAGS CC=mpiicc CXX=mpiicpc cmake .. -DBUILD_SHARED_LIBS=OFF -DGMX_FFT_LIBRARY=mkl -DCMAKE_INSTALL_PREFIX=$installDir -DGMX_MPI=ON -DGMX_OPENMP=ON -DGMX_CYCLE_SUBCOUNTERS=ON -DGMX_GPU=OFF -DGMX_BUILD_HELP=OFF -DGMX_HWLOC=OFF -DGMX_SIMD=AVX_512 -DGMX_OPENMP_MAX_THREADS=256 47 | make -j`nproc` 48 | make check 49 | make install 50 | 51 | # copy binaries to NFS 52 | if [ ! -x "$base/gromacs" ]; then 53 | echo "Can't copy. Gromacs doeas't exist in the current directory" 54 | exit 1 55 | fi 56 | 57 | ########################################################################################## 58 | %pre 59 | ################################ 60 | echo " build workloads" 61 | cd $base 62 | rm -rf workloads 63 | mkdir $base/workloads 64 | cd $base/workloads 65 | wget ftp://ftp.gromacs.org/pub/benchmarks/water_GMX50_bare.tar.gz 66 | tar -xvf water*.tar.gz 67 | cd water-cut1.0_GMX50_bare/1536/ 68 | $base/gromacs/src/bin/gmx_mpi grompp -f rf.mdp -c conf.gro -p topol.top -o topol_rf.tpr 69 | $base/gromacs/src/bin/gmx_mpi grompp -f pme.mdp -c conf.gro -p topol.top -o topol_pme.tpr 70 | 71 | cd $base/workloads 72 | # To get the Ion_channel_pme workload 73 | wget https://repository.prace-ri.eu/ueabs/GROMACS/1.2/GROMACS_TestCaseA.tar.gz 74 | tar -xvf GROMACS_TestCaseA.tar.gz 75 | 76 | # To get the Lignocellulose_rf workload 77 | wget https://repository.prace-ri.eu/ueabs/GROMACS/1.2/GROMACS_TestCaseB.tar.gz 78 | tar -xvf GROMACS_TestCaseB.tar.gz 79 | 80 | ######################## 81 | %setup 82 | ############## 83 | #copy the binaries and workloads into a common folder 84 | cd $base 85 | APP="gromacs-avx512" 86 | mkdir -p $APP 87 | WORKLOADS="$APP/workloads" 88 | mkdir -p $WORKLOADS 89 | cp -rf $base/gromacs/src/bin/gmx_mpi $APP 90 | cp -rf $base/workloads/water-cut1.0_GMX50_bare/1536/topol_pme.tpr $WORKLOADS/ 91 | cp -rf $base/workloads/water-cut1.0_GMX50_bare/1536/topol_rf.tpr $WORKLOADS/ 92 | cp -rf $base/workloads/ion_channel.tpr $WORKLOADS/ 93 | cp -rf $base/workloads/lignocellulose-rf.tpr $WORKLOADS/ 94 | chmod -R 777 $APP 95 | -------------------------------------------------------------------------------- /definitionFiles/gromacs/gromacsRun.def: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020 Intel Corporation 2 | # Legal Notice: See README file for licensing and other important information before using this file. 3 | 4 | Bootstrap: localimage 5 | From: /tmp/base.simg 6 | 7 | #################################################################################### 8 | %help 9 | ###### 10 | EXAMPLES: 11 | - Available apps: 12 | $ singularity apps 13 | gromacs 14 | multinode 15 | sysinfo 16 | appinfo 17 | clean 18 | 19 | - Allowed ARCH flags: avx512, avx2 20 | 21 | - Available workloads inside the container: 22 | 23 | Workload Name : Argument to pass to the container 24 | ----------------------------------------------------------- 25 | ion_channel_pme : ion_channel.tpr 26 | water_pme : topol_pme.tpr 27 | water_rf : topol_rf.tpr 28 | lignocellulose_rf : lignocellulose-rf.tpr 29 | 30 | - Running recommendations for SKL: 31 | For topol_pme (both tpr and rf) – 30000 steps (over 50 (for pme) and 30 (for rf) sec on 16 nodes) 32 | For ion_channel.tpr – 55000 steps (over 30 sec on 16 nodes). 33 | For lignocellulose-rf.tpr – 8000 steps (over 30 sec on 16 nodes). 34 | 35 | - Single node, to run one workload: 36 | $ singularity run --writable-tmpfs --app gromacs $ARCH $NTHREADS $WORKLOAD $NSTEPS 37 | 38 | - Example to run using the host's runtime libraries 39 | $ export SINGULARITY_BINDPATH="/opt/intel/compilers_and_libraries_2019.4.243:/opt/intel/compilers_and_libraries_2019.4.243,/opt/intel/compilers_and_libraries_2019.4.243:/mnt" 40 | $ singularity run --writable-tmpfs --app gromacs gromacs.simg avx512 40 topol_pme.tpr 30000 41 | 42 | - Single node to run all workloads: 43 | $ singularity run --writable-tmpfs --app gromacs avx512 $NTHREADS 44 | 45 | - Cluster: 46 | $ mpirun -n $NP -hostfile nodelist singularity run --app multinode $ARCH $WORKLOAD $NSTEPS 47 | 48 | for example to run lignocellulose_rf workload on a 4/40 cores per node: 49 | $ mpirun -n 160 -hostfile nodelist singularity run --app multinode gromacs.simg avx512 lignocellulose-rf.tpr 8000 50 | 51 | - Run multiple apps: 52 | $ for app in sysinfo appinfo gromacs ; do singularity run --app $app $ARCH ; done 53 | 54 | - To write results to your directory of choice, set the CUSTOM_RESULTS_DIR variable at runtime as: 55 | $ SINGULARITYENV_CUSTOM_RESULTS_DIR=/tmp/candy singularity run --app $APPNAME container.simg 56 | OR 57 | $ export SINGULARITYENV_CUSTOM_RESULTS_DIR=/tmp/candy 58 | $ singularity run .... 59 | #################################################################################### 60 | %environment 61 | ############# 62 | now=`date '+%Y_%m_%d'` 63 | hostname=`hostname` 64 | 65 | APPNAME="gromacs" 66 | OUTPUT_DIR=${HOME}/${APPNAME} 67 | LOG="${hostname}_${APPNAME}_$now.log" 68 | RESULTS="${hostname}_${APPNAME}_$now.results" 69 | SYSCONFIG="${hostname}_${APPNAME}_$now.sysconfig" 70 | APPINFO="${hostname}_${APPNAME}_${now}.appinfo" 71 | 72 | if [ -n "$CUSTOM_RESULTS_DIR" ]; then 73 | RESULTS_DIR=$CUSTOM_RESULTS_DIR 74 | else 75 | RESULTS_DIR=$OUTPUT_DIR 76 | fi 77 | 78 | WORKDIR="$SINGULARITY_ROOTFS/WORKSPACE" 79 | export APPNAME OUTPUT_DIR LOG RESULTS SYSCONFIG WORKDIR now hostname RESULTS_DIR APPINFO 80 | 81 | 82 | ################################################################################# 83 | %apprun gromacs 84 | ############### 85 | which mpirun 86 | 87 | ARCH=$1 88 | if [ -z "$ARCH" ] ; then 89 | echo "You are missing an argument ! Try again" 90 | exit 91 | fi 92 | 93 | echo $ARCH 94 | 95 | RESULTS_DIR="$RESULTS_DIR-${ARCH}" 96 | echo $RESULTS_DIR 97 | 98 | if [ ! -x "$RESULTS_DIR" ]; then 99 | mkdir $RESULTS_DIR 100 | fi 101 | 102 | WORKDIR=$WORKDIR/$APPNAME-$ARCH 103 | cd $WORKDIR/workloads 104 | 105 | NTHREADS=$2 106 | WORKLOAD=$3 107 | NSTEPS=$4 108 | 109 | nproc=`nproc` 110 | 111 | if [ -z "$NTHREADS" ]; then 112 | NTHREADS=$((nproc / 2)) 113 | echo "no NTHREADS specified. So running with $NTHREADS threads" 114 | echo "Run $singularity help gromacs.simg for more details" 115 | echo " " 116 | fi 117 | 118 | if [ ! -z "$WORKLOAD" ] && [ ! -z "$NSTEPS" ]; then 119 | if [ ! -f $WORKDIR/workloads/${WORKLOAD} ]; then 120 | echo "Workload not found inside the container!" 121 | exit 122 | fi 123 | log="${RESULTS_DIR}/${LOG}_${WORKLOAD}_${NSTEPS}" 124 | echo "Running Gromacs container on single node.. Workload = $WORKLOAD and NSTEPS=$NSTEPS" 125 | $WORKDIR/gmx_mpi mdrun -notunepme -ntomp $NTHREADS -dlb yes -v -nsteps $NSTEPS -resethway -noconfout -pin on -s $WORKLOAD 2>$log 126 | echo "${WORKLOAD}_NSTEPS_${NSTEPS}: `grep 'Performance' $log | awk '{print $2}'` ns/day" 127 | echo " " 128 | exit 129 | fi 130 | 131 | echo "no WORKLOAD specified. So running all the workloads: " 132 | echo "Run $singularity help gromacs.simg for more details" 133 | echo " " 134 | 135 | files=`echo *` 136 | value="" 137 | for workload in $files 138 | do 139 | case "$workload" in 140 | "topol_rf.tpr") 141 | NSTEPS='10000' 142 | WORKLOAD=$workload 143 | ;; 144 | "topol_pme.tpr") 145 | NSTEPS='10000' 146 | WORKLOAD=$workload 147 | ;; 148 | "ion_channel.tpr") 149 | NSTEPS='55000' 150 | WORKLOAD=$workload 151 | ;; 152 | "lignocellulose-rf.tpr") 153 | NSTEPS='8000' 154 | WORKLOAD=$workload 155 | ;; 156 | *) 157 | echo "Not a valid workload" 158 | esac 159 | 160 | log="${RESULTS_DIR}/${LOG}_${WORKLOAD}_${NSTEPS}" 161 | echo "Running command: $WORKDIR/gmx_mpi mdrun -notunepme -ntomp $NTHREADS -dlb yes -v -nsteps $NSTEPS -resethway -noconfout -pin on -s $WORKLOAD -g $log" 162 | $WORKDIR/gmx_mpi mdrun -notunepme -ntomp $NTHREADS -dlb yes -v -nsteps $NSTEPS -resethway -noconfout -pin on -s $WORKLOAD 2>$log # -g $log 163 | 164 | echo "${WORKLOAD}_NSTEPS_${NSTEPS} `grep 'Performance' $log | awk '{print $2}'` ns/day" |tee -a $RESULTS_DIR/$RESULTS 165 | echo " " 166 | 167 | done 168 | 169 | echo "Output files are located at the $RESULTS_DIR" 170 | ################################################################################# 171 | %apprun multinode 172 | ################## 173 | which mpirun 174 | ARCH=$1 175 | if [ -z "$ARCH" ] ; then 176 | echo "You are missing an argument ! Try again" 177 | exit 178 | fi 179 | 180 | RESULTS_DIR="$RESULTS_DIR-${ARCH}" 181 | 182 | if [ ! -x "$RESULTS_DIR" ]; then 183 | mkdir $RESULTS_DIR 184 | fi 185 | 186 | WORKDIR=$WORKDIR/$APPNAME-$ARCH 187 | cd $WORKDIR/workloads 188 | 189 | WORKLOAD=$2 190 | NSTEPS=$3 191 | 192 | if [ ! -z "$WORKLOAD" ] && [ ! -z "$NSTEPS" ]; then 193 | log="${RESULTS_DIR}/${WORKLOAD}_${NSTEPS}_multinode_${now}" 194 | touch $log 195 | $WORKDIR/gmx_mpi mdrun -notunepme -dlb yes -v -nsteps $NSTEPS -resethway -noconfout -pin on -s $WORKLOAD 2>$log # -g $log 196 | echo "${WORKLOAD}_NSTEPS_${NSTEPS}: `grep 'Performance' $log | awk '{print $2}'` ns/day" |tee -a ${RESULTS_DIR}/$RESULTS 197 | echo " " 198 | exit 199 | fi 200 | 201 | echo "You must specify workload and nsteps. Try again!" 202 | echo "Run $singularity help gromacs.simg for more details" 203 | echo "Output file $RESULTS is located at $RESULTS_DIR" 204 | 205 | ################################################################################# 206 | %setup 207 | ####### 208 | # Setup the proxies and env variables for building the code 209 | 210 | export WORKDIR="$SINGULARITY_ROOTFS/WORKSPACE" 211 | mkdir -p $WORKDIR 212 | 213 | ARCH="avx512" 214 | APP="gromacs" 215 | BIN="$location/$APP-$ARCH" 216 | 217 | # Copy all the binaries and anything else needed to run your binaries 218 | cp -r $BIN $WORKDIR/ 219 | cp sysinfo.sh -P $WORKDIR/ 220 | cp appinfo/${APP}* -P $WORKDIR/ 221 | cp help/${APP}* -P $WORKDIR/ 222 | 223 | chmod -R 777 $WORKDIR/* 224 | 225 | exit 0 226 | 227 | ############################################### 228 | %apprun appinfo 229 | ############# 230 | cd $WORKDIR/workloads 231 | if [ ! -x "$RESULTS_DIR" ]; then 232 | mkdir $RESULTS_DIR 233 | fi 234 | echo "expected perf to use as a baseline on SKL baremetal:" 235 | cd $WORKDIR 236 | APP="gromacs" 237 | cat ${APP} |tee $RESULTS_DIR/$APPINFO 238 | 239 | echo "#########################################" 240 | cd $WORKDIR 241 | ./gmx_mpi -version |tail -n 30 |tee -a $RESULTS_DIR/$APPINFO 242 | 243 | ############################################### 244 | %apprun clean 245 | ############# 246 | 247 | echo "deleting files $LOG $SYSCONFIG from $RESULTS_DIR" 248 | rm -rf $RESULTS_DIR 249 | 250 | ############################################# 251 | %apprun sysinfo 252 | ############### 253 | echo "Getting system configuration" 254 | cd $WORKDIR 255 | ./sysinfo.sh > $RESULTS_DIR/$SYSCONFIG 256 | 257 | echo "The $SYSCONFIG is located at $RESULTS_DIR" 258 | 259 | 260 | -------------------------------------------------------------------------------- /definitionFiles/lammps/Licence.txt: -------------------------------------------------------------------------------- 1 | Copyright 2020 Intel Corporation 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /definitionFiles/lammps/README.md: -------------------------------------------------------------------------------- 1 | # Intel-Hpc-Containers 2 | 3 | - LEGAL NOTICE: By downloading and using this build file (the “Software Package”) and the included software or software made available for download, you agree to the terms and conditions of the software license agreements for the Software Package, which may also include notices, disclaimers, or license terms for third party software (together, the “Agreements”) included in this README file. 4 | 5 | - This Singularity definition file will automatically download : 6 | 7 | * LAMMPS under GNU LESSER GENERAL PUBLIC LICENSE Version 2, June 1991 8 | - Download Location: (https://github.com/lammps/lammps) 9 | * GROMACS Benchmark Files that are Public Domain 10 | - License: (https://raw.githubusercontent.com/lammps/lammps/master/LICENSE) 11 | 12 | -------------------------------------------------------------- 13 | Create containers with Singularity version 3.x for HPC apps for Single and Cluster runs for Intel avx512 enabled plarforms: 14 | 15 | o The Singularity definition file will require these programs to be pre-installed: 16 | 17 | - Singularity 3.x version (https://sylabs.io/guides/3.5/admin-guide/installation.html) 18 | - Intel® Parallel Studio XE (https://software.intel.com/content/www/us/en/develop/tools/parallel-studio-xe/choose-download.html) 19 | - Super user access to the system 20 | - Centos (for other OSs, you will need to modify the instructions/recipe accordingly) 21 | 22 | 23 | Instructions to build a container: 24 | 25 | 1. Build the binaries and dependencies from tthe Build definition file : 26 | 27 | `$ sudo singularity build ` 28 | 29 | This will generate the binaries that you will need in step #3 and a dummy container that you can just use or ignore 30 | 31 | 32 | 2. Build the base container that includes the OS, Intel runtime libraries, and some independencies . Build it from the base https://github.com/intel/HPC-containers-from-Intel/blob/master/definitionFiles/base/base.def recipe as: 33 | 34 | `$ sudo singularity build /tmp/base.simg base` 35 | 36 | 37 | 3. Build the container . You may need to adjust and tweak the recipe a little bit to point out to your binaries, programs, and dependencies. You will need: 38 | 39 | * The binaries from step #1 40 | * The /tmp/base.simg container from step #2 41 | 42 | `$ sudo singularity build --force ` 43 | 44 | 45 | **Run instructions**: 46 | 47 | `$ singularity run-help ` 48 | 49 | -------------------------------------------------------------------------------- /definitionFiles/lammps/TPP.txt: -------------------------------------------------------------------------------- 1 | “GROMACS container definition file” Third Party Programs File 2 | This file contains the list of third party software (“third party programs”) contained in the Intel software and their required notices and/or license terms. This third party software, even if included with the distribution of the Intel software, may be governed by separate license terms, including without limitation, third party license terms, other Intel software license terms, and open source software license terms. These separate license terms govern your use of the third party programs as set forth in the “third-party-programs.txt” or other similarly-named text file. 3 | 4 | Third party programs and their corresponding required notices and/or license terms are listed below. 5 | ------------------------------------------------------------- 6 | 1. Singularity 3.5 7 | Copyright (c) 2015-2017, Gregory M. Kurtzer. All rights reserved. 8 | Copyright (c) 2016-2017, The Regents of the University of California. All right reserved. 9 | Copyright (c) 2017, SingularityWare, LLC. All rights reserved. 10 | Copyright (c) 2018-2019, Sylabs, Inc. All rights reserved. 11 | 12 | The 3-Clause BSD 13 | 14 | Redistribution and use in source and binary forms, with or without 15 | modification, are permitted provided that the following conditions are met: 16 | 17 | 1. Redistributions of source code must retain the above copyright notice, 18 | this list of conditions and the following disclaimer. 19 | 20 | 2. Redistributions in binary form must reproduce the above copyright notice, 21 | this list of conditions and the following disclaimer in the documentation 22 | and/or other materials provided with the distribution. 23 | 24 | 3. Neither the name of the copyright holder nor the names of its 25 | contributors may be used to endorse or promote products derived from this 26 | software without specific prior written permission. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 29 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 30 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 31 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 32 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 33 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 34 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 35 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 36 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 37 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 38 | POSSIBILITY OF SUCH DAMAGE. 39 | ------------------------------------------------------------- 40 | ------------------------------------------------------------- 41 | 2. Centos 42 | CentOS Linux 7 EULA 43 | 44 | CentOS Linux 7 comes with no guarantees or warranties of any sorts, 45 | either written or implied. 46 | 47 | The Distribution is released as GPLv2. Individual packages in the 48 | distribution come with their own licences. 49 | 50 | --------------------------------------------------------------------------------------------------- 51 | 3. Intel® Parallel Studio XE Runtime 2020 52 | 53 | Intel Simplified Software License (Version February 2020) 54 | Use and Redistribution. You may use and redistribute the software (the “Software”), without modification, provided the following conditions are met: 55 | • Redistributions must reproduce the above copyright notice and the following terms of use in the Software and in the documentation and/or other materials provided with the distribution. 56 | • Neither the name of Intel nor the names of its suppliers may be used to endorse or promote products derived from this Software without specific prior written permission. 57 | • No reverse engineering, decompilation, or disassembly of this Software is permitted. 58 | Limited patent license. Intel grants you a world-wide, royalty-free, non-exclusive license under patents it now or hereafter owns or controls to make, have made, use, import, offer to sell and sell (“Utilize”) this Software, but solely to the extent that any such patent is necessary to Utilize the Software alone. The patent license shall not apply to any combinations which include this software. No hardware per se is licensed hereunder. 59 | Third party programs. The Software may contain Third Party Programs. “Third Party Programs” are third party software, open source software or other Intel software listed in the “third-party-programs.txt” or other similarly named text file that is included with the Software. Third Party Programs, even if included with the distribution of the Software, may be governed by separate license terms, including without limitation, third party license terms, open source software notices and terms, and/or other Intel software license terms. These separate license terms may govern your use of the Third Party Programs. 60 | DISCLAIMER. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED. THIS SOFTWARE IS NOT INTENDED FOR USE IN SYSTEMS OR APPLICATIONS WHERE FAILURE OF THE SOFTWARE MAY CAUSE PERSONAL INJURY OR DEATH AND YOU AGREE THAT YOU ARE FULLY RESPONSIBLE FOR ANY CLAIMS, COSTS, DAMAGES, EXPENSES, AND ATTORNEYS’ FEES ARISING OUT OF ANY SUCH USE, EVEN IF ANY CLAIM ALLEGES THAT INTEL WAS NEGLIGENT REGARDING THE DESIGN OR MANUFACTURE OF THE MATERIALS. 61 | LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. YOU AGREE TO INDEMNIFY AND HOLD INTEL HARMLESS AGAINST ANY CLAIMS AND EXPENSES RESULTING FROM YOUR USE OR UNAUTHORIZED USE OF THE SOFTWARE. 62 | No support. Intel may make changes to the Software, at any time without notice, and is not obligated to support, update or provide training for the Software. 63 | Termination. Intel may terminate your right to use the Software in the event of your breach of this Agreement and you fail to cure the breach within a reasonable period of time. 64 | Feedback. Should you provide Intel with comments, modifications, corrections, enhancements or other input (“Feedback”) related to the Software Intel will be free to use, disclose, reproduce, license or otherwise distribute or exploit the Feedback in its sole discretion without any obligations or restrictions of any kind, including without limitation, intellectual property rights or licensing obligations. 65 | Compliance with laws. You agree to comply with all relevant laws and regulations governing your use, transfer, import or export (or prohibition thereof) of the Software. 66 | Governing law. All disputes will be governed by the laws of the United States of America and the State of Delaware without reference to conflict of law principles and subject to the exclusive jurisdiction of the state or federal courts sitting in the State of Delaware, and each party agrees that it submits to the personal jurisdiction and venue of those courts and waives any objections. The United Nations Convention on Contracts for the International Sale of Goods (1980) is specifically excluded and will not apply to the Software. 67 | *Other names and brands may be claimed as the property of others. 68 | -------------------------------------------------------------------------------- 69 | 4. LAMMPS 70 | 71 | GNU GENERAL PUBLIC LICENSE 72 | 73 | Version 2, June 1991 74 | 75 | Copyright (C) 1989, 1991 Free Software Foundation, Inc. 76 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 77 | 78 | Everyone is permitted to copy and distribute verbatim copies of this 79 | license document, but changing it is not allowed. 80 | 81 | Preamble 82 | 83 | The licenses for most software are designed to take away your freedom 84 | to share and change it. By contrast, the GNU General Public License is 85 | intended to guarantee your freedom to share and change free 86 | software--to make sure the software is free for all its users. This 87 | General Public License applies to most of the Free Software 88 | Foundation's software and to any other program whose authors commit to 89 | using it. (Some other Free Software Foundation software is covered by 90 | the GNU Library General Public License instead.) You can apply it to 91 | your programs, too. 92 | 93 | When we speak of free software, we are referring to freedom, not 94 | price. Our General Public Licenses are designed to make sure that you 95 | have the freedom to distribute copies of free software (and charge for 96 | this service if you wish), that you receive source code or can get it 97 | if you want it, that you can change the software or use pieces of it 98 | in new free programs; and that you know you can do these things. 99 | 100 | To protect your rights, we need to make restrictions that forbid 101 | anyone to deny you these rights or to ask you to surrender the 102 | rights. These restrictions translate to certain responsibilities for 103 | you if you distribute copies of the software, or if you modify it. 104 | 105 | For example, if you distribute copies of such a program, whether 106 | gratis or for a fee, you must give the recipients all the rights that 107 | you have. You must make sure that they, too, receive or can get the 108 | source code. And you must show them these terms so they know their 109 | rights. 110 | 111 | We protect your rights with two steps: (1) copyright the software, and 112 | (2) offer you this license which gives you legal permission to copy, 113 | distribute and/or modify the software. 114 | 115 | Also, for each author's protection and ours, we want to make certain 116 | that everyone understands that there is no warranty for this free 117 | software. If the software is modified by someone else and passed on, 118 | we want its recipients to know that what they have is not the 119 | original, so that any problems introduced by others will not reflect 120 | on the original authors' reputations. 121 | 122 | Finally, any free program is threatened constantly by software 123 | patents. We wish to avoid the danger that redistributors of a free 124 | program will individually obtain patent licenses, in effect making the 125 | program proprietary. To prevent this, we have made it clear that any 126 | patent must be licensed for everyone's free use or not licensed at 127 | all. 128 | 129 | The precise terms and conditions for copying, distribution and 130 | modification follow. 131 | 132 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 133 | 134 | 0. This License applies to any program or other work which contains a 135 | notice placed by the copyright holder saying it may be distributed 136 | under the terms of this General Public License. The "Program", below, 137 | refers to any such program or work, and a "work based on the Program" 138 | means either the Program or any derivative work under copyright law: 139 | that is to say, a work containing the Program or a portion of it, 140 | either verbatim or with modifications and/or translated into another 141 | language. (Hereinafter, translation is included without limitation in 142 | the term "modification".) Each licensee is addressed as "you". 143 | 144 | Activities other than copying, distribution and modification are not 145 | covered by this License; they are outside its scope. The act of 146 | running the Program is not restricted, and the output from the Program 147 | is covered only if its contents constitute a work based on the Program 148 | (independent of having been made by running the Program). Whether that 149 | is true depends on what the Program does. 150 | 151 | 1. You may copy and distribute verbatim copies of the Program's source 152 | code as you receive it, in any medium, provided that you conspicuously 153 | and appropriately publish on each copy an appropriate copyright notice 154 | and disclaimer of warranty; keep intact all the notices that refer to 155 | this License and to the absence of any warranty; and give any other 156 | recipients of the Program a copy of this License along with the 157 | Program. 158 | 159 | You may charge a fee for the physical act of transferring a copy, and 160 | you may at your option offer warranty protection in exchange for a 161 | fee. 162 | 163 | 2. You may modify your copy or copies of the Program or any portion of 164 | it, thus forming a work based on the Program, and copy and distribute 165 | such modifications or work under the terms of Section 1 above, 166 | provided that you also meet all of these conditions: 167 | 168 | a) You must cause the modified files to carry prominent notices 169 | stating that you changed the files and the date of any change. 170 | 171 | b) You must cause any work that you distribute or publish, that 172 | in whole or in part contains or is derived from the Program or 173 | any part thereof, to be licensed as a whole at no charge to all 174 | third parties under the terms of this License. 175 | 176 | c) If the modified program normally reads commands interactively 177 | when run, you must cause it, when started running for such 178 | interactive use in the most ordinary way, to print or display an 179 | announcement including an appropriate copyright notice and a 180 | notice that there is no warranty (or else, saying that you 181 | provide a warranty) and that users may redistribute the program 182 | under these conditions, and telling the user how to view a copy 183 | of this License. (Exception: if the Program itself is interactive 184 | but does not normally print such an announcement, your work based 185 | on the Program is not required to print an announcement.) 186 | 187 | These requirements apply to the modified work as a whole. If 188 | identifiable sections of that work are not derived from the Program, 189 | and can be reasonably considered independent and separate works in 190 | themselves, then this License, and its terms, do not apply to those 191 | sections when you distribute them as separate works. But when you 192 | distribute the same sections as part of a whole which is a work based 193 | on the Program, the distribution of the whole must be on the terms of 194 | this License, whose permissions for other licensees extend to the 195 | entire whole, and thus to each and every part regardless of who wrote 196 | it. 197 | 198 | Thus, it is not the intent of this section to claim rights or contest 199 | your rights to work written entirely by you; rather, the intent is to 200 | exercise the right to control the distribution of derivative or 201 | collective works based on the Program. 202 | 203 | In addition, mere aggregation of another work not based on the Program 204 | with the Program (or with a work based on the Program) on a volume of 205 | a storage or distribution medium does not bring the other work under 206 | the scope of this License. 207 | 208 | 3. You may copy and distribute the Program (or a work based on it, 209 | under Section 2) in object code or executable form under the terms of 210 | Sections 1 and 2 above provided that you also do one of the following: 211 | 212 | a) Accompany it with the complete corresponding machine-readable 213 | source code, which must be distributed under the terms of 214 | Sections 1 and 2 above on a medium customarily used for software 215 | interchange; or, 216 | 217 | b) Accompany it with a written offer, valid for at least three 218 | years, to give any third party, for a charge no more than your 219 | cost of physically performing source distribution, a complete 220 | machine-readable copy of the corresponding source code, to be 221 | distributed under the terms of Sections 1 and 2 above on a medium 222 | customarily used for software interchange; or, 223 | 224 | c) Accompany it with the information you received as to the offer 225 | to distribute corresponding source code. (This alternative is 226 | allowed only for noncommercial distribution and only if you 227 | received the program in object code or executable form with such 228 | an offer, in accord with Subsection b above.) 229 | 230 | The source code for a work means the preferred form of the work for 231 | making modifications to it. For an executable work, complete source 232 | code means all the source code for all modules it contains, plus any 233 | associated interface definition files, plus the scripts used to 234 | control compilation and installation of the executable. However, as a 235 | special exception, the source code distributed need not include 236 | anything that is normally distributed (in either source or binary 237 | form) with the major components (compiler, kernel, and so on) of the 238 | operating system on which the executable runs, unless that component 239 | itself accompanies the executable. 240 | 241 | If distribution of executable or object code is made by offering 242 | access to copy from a designated place, then offering equivalent 243 | access to copy the source code from the same place counts as 244 | distribution of the source code, even though third parties are not 245 | compelled to copy the source along with the object code. 246 | 247 | 4. You may not copy, modify, sublicense, or distribute the Program 248 | except as expressly provided under this License. Any attempt otherwise 249 | to copy, modify, sublicense or distribute the Program is void, and 250 | will automatically terminate your rights under this License. However, 251 | parties who have received copies, or rights, from you under this 252 | License will not have their licenses terminated so long as such 253 | parties remain in full compliance. 254 | 255 | 5. You are not required to accept this License, since you have not 256 | signed it. However, nothing else grants you permission to modify or 257 | distribute the Program or its derivative works. These actions are 258 | prohibited by law if you do not accept this License. Therefore, by 259 | modifying or distributing the Program (or any work based on the 260 | Program), you indicate your acceptance of this License to do so, and 261 | all its terms and conditions for copying, distributing or modifying 262 | the Program or works based on it. 263 | 264 | 6. Each time you redistribute the Program (or any work based on the 265 | Program), the recipient automatically receives a license from the 266 | original licensor to copy, distribute or modify the Program subject to 267 | these terms and conditions. You may not impose any further 268 | restrictions on the recipients' exercise of the rights granted 269 | herein. You are not responsible for enforcing compliance by third 270 | parties to this License. 271 | 272 | 7. If, as a consequence of a court judgment or allegation of patent 273 | infringement or for any other reason (not limited to patent issues), 274 | conditions are imposed on you (whether by court order, agreement or 275 | otherwise) that contradict the conditions of this License, they do not 276 | excuse you from the conditions of this License. If you cannot 277 | distribute so as to satisfy simultaneously your obligations under this 278 | License and any other pertinent obligations, then as a consequence you 279 | may not distribute the Program at all. For example, if a patent 280 | license would not permit royalty-free redistribution of the Program by 281 | all those who receive copies directly or indirectly through you, then 282 | the only way you could satisfy both it and this License would be to 283 | refrain entirely from distribution of the Program. 284 | 285 | If any portion of this section is held invalid or unenforceable under 286 | any particular circumstance, the balance of the section is intended to 287 | apply and the section as a whole is intended to apply in other 288 | circumstances. 289 | 290 | It is not the purpose of this section to induce you to infringe any 291 | patents or other property right claims or to contest validity of any 292 | such claims; this section has the sole purpose of protecting the 293 | integrity of the free software distribution system, which is 294 | implemented by public license practices. Many people have made 295 | generous contributions to the wide range of software distributed 296 | through that system in reliance on consistent application of that 297 | system; it is up to the author/donor to decide if he or she is willing 298 | to distribute software through any other system and a licensee cannot 299 | impose that choice. 300 | 301 | This section is intended to make thoroughly clear what is believed to 302 | be a consequence of the rest of this License. 303 | 304 | 8. If the distribution and/or use of the Program is restricted in 305 | certain countries either by patents or by copyrighted interfaces, the 306 | original copyright holder who places the Program under this License 307 | may add an explicit geographical distribution limitation excluding 308 | those countries, so that distribution is permitted only in or among 309 | countries not thus excluded. In such case, this License incorporates 310 | the limitation as if written in the body of this License. 311 | 312 | 9. The Free Software Foundation may publish revised and/or new 313 | versions of the General Public License from time to time. Such new 314 | versions will be similar in spirit to the present version, but may 315 | differ in detail to address new problems or concerns. 316 | 317 | Each version is given a distinguishing version number. If the Program 318 | specifies a version number of this License which applies to it and 319 | "any later version", you have the option of following the terms and 320 | conditions either of that version or of any later version published by 321 | the Free Software Foundation. If the Program does not specify a 322 | version number of this License, you may choose any version ever 323 | published by the Free Software Foundation. 324 | 325 | 10. If you wish to incorporate parts of the Program into other free 326 | programs whose distribution conditions are different, write to the 327 | author to ask for permission. For software which is copyrighted by the 328 | Free Software Foundation, write to the Free Software Foundation; we 329 | sometimes make exceptions for this. Our decision will be guided by the 330 | two goals of preserving the free status of all derivatives of our free 331 | software and of promoting the sharing and reuse of software generally. 332 | 333 | NO WARRANTY 334 | 335 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO 336 | WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE 337 | LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS 338 | AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF 339 | ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 340 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 341 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE 342 | PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME 343 | THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 344 | 345 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN 346 | WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY 347 | AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU 348 | FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR 349 | CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE 350 | PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING 351 | RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A 352 | FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF 353 | SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 354 | DAMAGES. 355 | 356 | END OF TERMS AND CONDITIONS 357 | 358 | How to Apply These Terms to Your New Programs 359 | 360 | If you develop a new program, and you want it to be of the greatest 361 | possible use to the public, the best way to achieve this is to make it 362 | free software which everyone can redistribute and change under these 363 | terms. 364 | 365 | To do so, attach the following notices to the program. It is safest to 366 | attach them to the start of each source file to most effectively 367 | convey the exclusion of warranty; and each file should have at least 368 | the "copyright" line and a pointer to where the full notice is found. 369 | 370 | one line to give the program's name and an idea of what it does. 371 | Copyright (C) yyyy name of author 372 | 373 | This program is free software; you can redistribute it and/or modify 374 | it under the terms of the GNU General Public License as published by 375 | the Free Software Foundation; either version 2 of the License, or (at 376 | your option) any later version. 377 | 378 | This program is distributed in the hope that it will be useful, but 379 | WITHOUT ANY WARRANTY; without even the implied warranty of 380 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 381 | General Public License for more details. 382 | 383 | You should have received a copy of the GNU General Public License 384 | along with this program; if not, write to the Free Software 385 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 386 | 387 | Also add information on how to contact you by electronic and paper mail. 388 | 389 | If the program is interactive, make it output a short notice like this 390 | when it starts in an interactive mode: 391 | 392 | Gnomovision version 69, Copyright (C) year name of author 393 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details 394 | type `show w'. This is free software, and you are welcome 395 | to redistribute it under certain conditions; type `show c' 396 | for details. 397 | 398 | The hypothetical commands `show w' and `show c' should show the 399 | appropriate parts of the General Public License. Of course, the 400 | commands you use may be called something other than `show w' and `show 401 | c'; they could even be mouse-clicks or menu items--whatever suits your 402 | program. 403 | 404 | You should also get your employer (if you work as a programmer) or 405 | your school, if any, to sign a "copyright disclaimer" for the program, 406 | if necessary. Here is a sample; alter the names: 407 | 408 | Yoyodyne, Inc., hereby disclaims all copyright 409 | interest in the program `Gnomovision' 410 | (which makes passes at compilers) written 411 | by James Hacker. 412 | 413 | signature of Ty Coon, 1 April 1989 414 | Ty Coon, President of Vice 415 | 416 | This General Public License does not permit incorporating your program 417 | into proprietary programs. If your program is a subroutine library, 418 | you may consider it more useful to permit linking proprietary 419 | applications with the library. If this is what you want to do, use the 420 | GNU Library General Public License instead of this License. 421 | -------------------------------------------------------------------------------- 422 | Intel C++ Compiler 423 | Copyright Intel Corporation 424 | 425 | Intel End User License Agreement for Developer Tools (Version September 2019) 426 | 427 | IMPORTANT NOTICE – PLEASE READ AND AGREE BEFORE DOWNLOADING, INSTALLING, COPYING OR USING 428 | 429 | This Agreement is between you, or the company or other legal entity (“Legal Entity”) that you represent and warrant you have the legal authority to bind, (each, “You” or “Your”) and Intel Corporation and its subsidiaries (collectively, “Intel”) regarding Your use of the Materials. By downloading, installing, copying or otherwise using the Materials, You agree to be bound by the terms of this Agreement. If You do not agree to the terms of this Agreement, or do not have legal authority or required age to agree to them, do not download, install, copy or otherwise use the Materials. 430 | 431 | 1. LICENSE DEFINITIONS. 432 | 433 | A. “Cloud Provider” means a third party cloud service provider offering a cloud-based platform, infrastructure, application or storage services, such as Microsoft Azure or Amazon Web Services, which You may utilize solely subject to the restrictions set forth in Section 4.4 B. 434 | 435 | B. “Computer” means a computer, workstation or server(s); as well as a container or virtual machine located on Your or Your Cloud Provider’s server. 436 | 437 | C. “Derivative Work” means a derivative work, as defined in 17 U.S.C. § 101, of the Software Source Code, that You develop under this Agreement. 438 | 439 | D. “Executable Code” means computer programming code in binary form suitable for machine execution by a processor without the intervening steps of interpretation or compilation. 440 | 441 | E. “Instance” means a single running copy of the Materials on a Computer. 442 | 443 | F. “Licensed Patent Claims” mean the claims of Intel’s patents that are necessarily and directly infringed by the reproduction and distribution of the Materials that is authorized in Section 2 below, when the Materials are in their unmodified form as delivered by Intel to You and not modified or combined with anything else. Licensed Patent Claims are only those claims that Intel can license without paying, or getting the consent of, a third party. 444 | 445 | G. "Materials" mean the software, documentation, the software product serial number, and other collateral, including any updates and upgrades, that are made available to You by Intel under this Agreement. Materials include any Redistributables, Executable Code, Source Code, Sample Source Code, and Pre-Release Materials, but do not include Third Party Programs. 446 | 447 | H. “Microsoft Platforms” mean any current and future Microsoft operating system products, Microsoft run-time technologies (such as the .NET Framework), and Microsoft application platforms (such as Microsoft Office or Microsoft Dynamics) that Microsoft offers. 448 | 449 | I. “Pre-Release Materials” mean the portions of the Materials, that are identified (in the product release notes, on Intel’s download website for the Materials or elsewhere) or labeled as pre-release, prototype, alpha or beta code and, as such, the Pre-Release Materials are deemed to be pre-release code, which may not be fully functional or tested and may contain bugs or errors, which Intel may substantially modify in its development of a production version, and for which Intel makes no assurances that it will ever develop or make generally available a production version. Pre-Release Materials are subject to the terms of Section 4.2. 450 | 451 | J. “Reciprocal Open Source Software” means any software that is subject to a license which requires that (a) it must be distributed in source code form; (b) it must be licensed under the same open source license terms; and (c) its derivative works must be licensed under the same open source license terms. Examples of this type of license are the GNU General Public License or the Mozilla Public License. 452 | 453 | K. "Redistributables" mean the files (if any) listed in the “redist.txt”, “redist-rt.txt” or similarly-named text files that may be included in the Materials. Redistributables include Sample Source Code. 454 | 455 | L. “Sample Source Code” means those portions of the Materials that are Source Code and are identified as sample code. Sample Source Code may not have been tested nor validated by Intel and is provided purely as a programming example. 456 | 457 | M. “Source Code” means the software portion of the Materials provided in human readable format. 458 | 459 | N. “Term” means either a perpetual license or time limited license for the Materials that You obtain as specified on Intel’s download website, in Intel’s applicable documentation or as controlled by the serial number for the Materials 460 | 461 | O. “Third Party Programs” mean the files (if any) listed in the “third-party-programs.txt” or other similarly-named text file that may be included in the Materials for the applicable software. 462 | 463 | P. “Your Product” means one or more applications, products or projects developed by or for You using the Materials. 464 | 465 | 2. LICENSE GRANTS. 466 | 467 | 2.1 License to the Materials. Subject to the terms and conditions of this Agreement, including, but not limited to, the applicable license type use restrictions in Section 3 and other restrictions in Section 4 below, and timely payment of any fees (if applicable), Intel grants You a non-exclusive, worldwide, non-assignable (except as expressly permitted hereunder), non-sublicensable, limited right and license for the Term: 468 | 469 | A. under its copyrights, to: 470 | 471 | (1) reproduce internally a reasonable number of copies of the Materials for Your personal or business use in accordance with the documentation or text files included as part of the Materials; 472 | 473 | (2) use the Materials internally solely for Your personal or business use to develop Your Product, in accordance with the documentation or text files included as part of the Materials; 474 | 475 | (3) modify or create Derivative Works of the Redistributables, or any portions, that are provided to You in Source Code; 476 | 477 | (4) distribute (directly and through Your distributors, resellers and other channel partners, if applicable), the Redistributables including any modifications to or Derivative Works of the Redistributables made pursuant to Section 2.1.A(3), or any portions, subject to the following restrictions: 478 | 479 | (a) Any distribution of the Redistributables must only be as part of Your Product which must add significant primary functionality different than that of the Redistributables themselves; 480 | 481 | (b) Any additional restrictions which may appear in the text files with the Redistributables and in Section 4 below; 482 | 483 | (c) The license under Section 2.1.A(4) includes the right to sublicense the Redistributables, but the sublicense rights are limited only to the sublicensing of any Intel copyrights in the Redistributables and only to the extent necessary to perform, display, and distribute the Redistributables (including Your modifications and Derivative Works thereto) solely as incorporated in Your Product; and 484 | 485 | (d) You (i) will be solely responsible to Your customers for any update, support obligation or other liability which may arise from Your distribution of Your Product, (ii) will not make any statement that Your Product is "certified" or that its performance is guaranteed by Intel or its suppliers, (iii) will not use Intel's or its suppliers’ name or trademarks to market Your Product without written permission from Intel, (iv) will redistribute the Redistributables originally provided to You by Intel in Executable Code subject to a license agreement that prohibits disassembly and reverse engineering of the Redistributables, (v) will indemnify, hold harmless, and defend Intel and its suppliers from and against any claims or lawsuits, including attorney's fees, that arise or result from Your modifications, Derivative Works or Your distribution of Your Product; 486 | 487 | and 488 | 489 | B. under Intel’s Licensed Patent Claims, to: 490 | 491 | (1) make copies of the Materials only as specified in Section 2.1.A(1); 492 | 493 | (2) use the Materials only as specified in Section 2.1.A(2); and 494 | 495 | (3) offer to distribute, and distribute, but not sell, the Redistributables only as part of Your Product under Intel’s copyright license granted in Section 2.1(A), but only under the terms of that copyright license and not as a sale; 496 | 497 | And, provided further, that the license under the Licensed Patent Claims does not and will not apply to, and Intel does not expressly grant You a patent license in this Agreement to, any modifications to, or Derivative Works of, the Materials or Redistributables, whether made by You, Your contractor(s), Your customer(s) (which, for all purposes under this Agreement, will mean either a customer, reseller, distributor or other channel partner) or any third party, even if the modification and Derivative Works are permitted under 2.1.A(3). 498 | 499 | 2.2 Evaluation License. Subject to the terms and conditions of this Agreement, including, but not limited to, the applicable Evaluation License type use restrictions in Section 3.4 and other restrictions in Section 4 below, Intel grants You a non-exclusive, non-assignable, non-sublicensable, limited right and license during the Term to (i) internally reproduce a reasonable number of copies of the Materials for Your evaluation, (ii) internally use the Materials for Your evaluation, and (iii) create Derivative Works of the Redistributables provided in Source Code as part of Your evaluation. This license does not authorize any redistribution, public performance or public display of the Materials, Derivative Works or the Redistributables, and any application and/or product developed by You using the Materials, Derivative Works or the Redistributables may only be used for evaluation purposes. 500 | 501 | 2.3 Third Party Programs and Other Intel Programs Licenses. Third Party Programs, even if included with the distribution of the Materials, are governed by separate license terms, including without limitation, third party license terms, other Intel software license terms, and open source software license terms. Such separate license terms (and not this Agreement) solely govern Your use of the Third Party Programs. 502 | 503 | 3. LICENSE USE TYPES. All license types are subject to compliance with all the terms and conditions of this Agreement. The license type You receive will be specified in writing by (1) Intel directly, (2) in the product release notes for the Materials, (3) on Intel’s download website for the Materials, or (4) from an authorized Intel distributor. 504 | 505 | 3.1 Single Named-User License Type. Subject to Section 2.1, a single named-user license type authorizes You to run as many Instances as needed for Your exclusive individual use. 506 | 507 | 3.2 Floating License Type. Subject to Section 2.1, a floating license type authorizes You to run as many Instances as needed on a designated network(s) for use by no more than the authorized number of concurrent users. 508 | 509 | 3.3 Site License Type. Subject to Section 2.1, a site license type (i.e., the Materials include the text file named “site_license_materials.txt”), authorizes You to run as many Instances as needed for use by any number of concurrent users located at the specified site or sites. 510 | 511 | 3.4 Evaluation License Type. Subject to Section 2.2, an evaluation license type authorizes You to run as many instances as needed for your evaluation of the Materials. 512 | 513 | 4. LICENSE CONDITIONS. 514 | 515 | 4.1 Restrictions. Except as expressly provided in this Agreement, You may NOT: (i) use, copy, distribute, or publicly display the Materials; (ii) share, publish, rent or lease the Materials to any third party; (iii) assign this Agreement or transfer the Materials; (iv) modify, adapt, or translate the Materials in whole or in part; (v) reverse engineer, decompile, or disassemble the Materials, or otherwise attempt to derive the source code for the software; (vi) work around any technical limitations in the software or attempt to modify or tamper with the normal function of any license manager that may regulate usage of the Materials; (vii) distribute, sublicense or transfer the Source Code form of any components of the Materials or Derivative Works to any third party; (viii) distribute the Redistributables to run on a platform other than a Microsoft Platform if according to the accompanying user documentation the Materials are meant to execute only on a Microsoft Platform; (ix) remove, minimize, block or modify any notices of Intel or its suppliers in the Materials; (x) include the Redistributables in malicious, deceptive, or unlawful programs or products or use the Materials in any way that is against the law; (xi) modify, create a Derivative Work, link, or distribute the Materials so that any part of it becomes Reciprocal Open Source Software; (xii) use the Materials directly or indirectly for SaaS services or service bureau purposes (i.e., a service whereby the use of or access to the Materials is provided to a third party as a service, such as in the salesforce.com service business model). 516 | 517 | 4.2 Pre-Release Materials. If You receive Pre-Release Materials, You may reproduce a reasonable number of copies, and use the Pre-Release Materials for evaluation, and testing purposes. You may not (i) modify or incorporate the Pre-Release Materials into any product You are developing; (ii) continue to use the Pre-Release Materials if and once a commercial version is released; and (iii) disclose to any third party any benchmarks or other performance results, or other information relating to the Pre-Release Materials. Intel may waive these restrictions in writing at its sole discretion; however, if You decide to use the Pre-Release Materials in Your Product (even with Intel’s waiver), You acknowledge and agree that You are fully responsible for any issues that result from the modification or incorporation of the Pre-Release Materials into Your Product. 518 | 519 | 4.3 Safety, Critical, and Lifesaving Applications. The Materials may provide information relevant to safety-critical applications to allow compliance with functional safety standards or requirements (“Safety-Critical Applications”). You understand and acknowledge that safety is Your responsibility. To the extent You use the Materials to create, or as part of, products used in Safety-Critical Applications it is Your responsibility to design, manage and assure system-level safeguards to anticipate, monitor and control system failures, and You agree that You are solely responsible for all applicable regulatory standards and safety-related requirements concerning Your use of the Materials in Safety Critical Applications. Should You use the Materials for Safety-Critical Applications or in any type of a system or application in which the failure of the Materials could create a situation where personal injury or death may occur (e.g., medical systems, life sustaining or lifesaving systems) (“Lifesaving Applications”), You agree to indemnify, defend, and hold Intel and its representatives harmless against all claims, costs, damages, and expenses, including reasonable attorney fees arising in any way out of Your use of the Materials in Safety-Critical Applications and claims of product liability, personal injury or death associated with Lifesaving Applications; even if, for either type of application, such claims allege that Intel was negligent or strictly liable regarding the design or manufacture of the Materials or its failure to warn regarding the Materials. 520 | 521 | 4.4 Third Party Use. 522 | 523 | A. If you are an entity, Your contractors may use the Materials as specified in Section 2 above, provided: (i) their use of the Materials is solely on behalf of and in support of Your business, (ii) they agree to the terms and conditions of this Agreement, and (iii) You are solely responsible for their use of the Materials. 524 | 525 | B. You may utilize a Cloud Provider to host the Materials for You, provided: (i) the Cloud Provider may only host the Materials for Your exclusive use and may not use the Materials for any other purpose whatsoever, including the restriction set forth in Section 4.1(xii); (ii) the Cloud Provider’s use of the Materials must be solely on behalf of and in support of Your Product, and (iii) You will indemnify, hold harmless, and defend Intel and its suppliers from and against any claims or lawsuits, including attorney's fees, that arise or result from Your Cloud Provider’s use, misuse or disclosure of the Materials. 526 | 527 | 4.5 Media Format Codecs and Digital Rights Management. You acknowledge and agree that Your use of the Materials or distribution of the Redistributables with Your Product as permitted by this Agreement may require You to procure license(s) from one or more third parties that may hold intellectual property rights applicable to any media decoding, encoding or transcoding technology (such as, for example, through use of an audio or video codec) and/or digital rights management capabilities of the Materials, if any. Should any such additional licenses be required, You are solely responsible for obtaining any such licenses and agree to obtain any such licenses at Your own expense. 528 | 529 | 4.6 Materials Transfer. You may only permanently transfer the Materials, and all of Your rights and obligations under this Agreement, to another party (“Recipient”) solely in conjunction with a change of ownership, merger, acquisition, sale or transfer of all or substantially all of Your business or assets, either voluntarily, by operation of law or otherwise subject to the following: You must notify Intel of the transfer by sending a letter to Intel: (i) identifying the legal entities of Recipient and You, (ii) identifying the Materials (i.e., the specific Intel software and version) and the associated serial numbers to be transferred, (iii) certifying that You retain no copies of the Materials or portions, (iv) certifying that the Recipient has agreed in writing to be bound by all of the terms and conditions of this Agreement, (v) certifying that the Recipient has been notified that in order to receive support from Intel for the Materials they must notify Intel in writing of the transfer and provide Intel with the information specified in subsection (ii) above along with the name and email address of the individual assigned to use the Materials, and (vi) providing Your email address so that Intel may confirm receipt of Your letter. Please send such letter to: 530 | 531 | Intel Corporation 532 | 2111 NE 25th Avenue 533 | Hillsboro, OR 97124 534 | Attn: CPDP Contracts Management, JF2-28 535 | 536 | 5. DATA COLLECTION AND PRIVACY. 537 | 538 | 5.1 Anonymous Data Collection by Materials. Certain Materials may generate and collect anonymous data about the Materials and transmit it to Intel as a one-time event during installation. This anonymous data collection may include, but is not limited to, product name, product version, license type, support type, installation status, and development environment. Anonymous data collection by the Materials does not include: (a) any personal or personally identifiable data of You, an end user or a data subject; or (b) data or information identifying a business entity. The purpose of the anonymous data collection by the Materials is to enable Intel to develop, improve, and support Intel’s products and services. 539 | 540 | 5.2 Provisioning Data Collection. Provisioning data may be collected and transmitted to Intel as a one-time event during installation in order to activate the Materials. This collection may be mandatory and a condition of using the Materials in order to verify the right to use the Materials. Provisioning data includes the Material’s unique serial number and it may be combined with other information about the Materials and Your Computer. Provisioning data is not shared with or disclosed to parties outside of Intel. Intel may retain the provisioning data indefinitely. 541 | 542 | 5.3 Other Data Collection. 543 | 544 | A. Collection of Registration Data. Some Materials may require registration of the Materials with Intel during installation. The information currently collected during registration is Your first name, Your last name, Your email, Your company, and Your country. The registration information is subject to change, however, You will be notified at the time of registration what information will be collected, why it is being collected, how long it will be retained by Intel, and how to have Your registration information removed from Intel’s registration database if You so choose to do so at a later date. 545 | 546 | B. Optional Collection of Analytical Data. You may be given the option during installation of the Materials to consent to the collection of analytical data. Analytical data may include technical information about Your software installation and runtime status (such as installation metrics, serial number, counters, flags, and timestamps), and Your development environment (such as operating system, CPU architecture, and other Intel products installed). You will be notified at the time of installation what analytical data will be collected if You agree to such collection, why it is being collected, how long it will be retained by Intel, and how to stop the collection of analytical data if You so choose to do so at a later date. 547 | 548 | C. Required Collection of Analytical Data. For certain Materials, the collection of analytical data as described in Section 5.3 B may be a requirement of use. In these cases, You will be given notice and the option to cancel the download or installation of the Materials if you do not wish to consent to the collection of analytical data. 549 | 550 | 5.4 Intel’s Privacy Notice. Intel is committed to respecting Your privacy. To learn more about Intel’s privacy practices, please visit http://www.intel.com/privacy. 551 | 552 | 6. OWNERSHIP. Title to the Materials and all copies remain with Intel or its suppliers. The Materials are protected by intellectual property rights, including without limitation, United States copyright laws and international treaty provisions. You will not remove any copyright or other proprietary notice from the Materials. You agree to prevent any unauthorized copying of the Materials. Except as expressly provided herein, no license or right is granted to You directly or by implication, inducement, estoppel or otherwise; specifically Intel does not grant any express or implied right to You under Intel patents, copyrights, trademarks, or trade secrets. 553 | 554 | 7. NO WARRANTY AND NO SUPPORT. 555 | 556 | 7.1 No Warranty. Disclaimer. Intel disclaims all warranties of any kind and the terms and remedies provided in this Agreement are instead of any other warranty or condition, express, implied or statutory, including those regarding merchantability, fitness for any particular purpose, non-infringement or any warranty arising out of any course of dealing, usage of trade, proposal, specification or sample. Intel does not assume (and does not authorize any person to assume on its behalf) any other liability. 557 | 558 | 7.2 No Support; Limited Paid Support. Intel may make changes to the Materials, or to items referenced therein, at any time without notice, but is not obligated to support, update or provide training for the Materials under the terms of this Agreement. Intel offers limited paid support options under separate written terms. You may request additional information on Intel’s support offerings from an Intel representative. 559 | 560 | 8. LIMITATION OF LIABILITY. Use of the Materials are at Your own risk. In no event will Intel or its suppliers be liable for any direct, indirect, incidental, consequential, special, or other losses or damages arising out of or related to this Agreement or Your use of the Materials, including without limitation, any of the following losses or damages (whether such losses or damages were foreseen, foreseeable, known or otherwise): (i) loss of revenue; (ii) loss of actual or anticipated profits; (iii) loss of the use of money; (iv) loss of anticipated savings; (v) loss of business; (vi) loss of opportunity; (vii) loss of goodwill; (viii) loss of use of the Software; (ix) loss of reputation; (x) loss of, damage to, or corruption of data; or (xi) any indirect, incidental special or consequential loss of damage however caused (including loss or damage of the type specified in this Section 6). 561 | 562 | 9. USER SUBMISSIONS. This Agreement does not obligate You to provide Intel with materials, information, comments, suggestions or other communication regarding the Materials. However, You agree that any material, information, comments, suggestions or other communication You transmit or post to an Intel website (including but not limited to, submissions to the Intel Priority Support and/or other customer support websites or online portals) or provide to Intel under this Agreement are not controlled by the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulation (EAR), and if related to the features, functions, performance or use of the Materials are deemed non-confidential and non-proprietary ("Communications"). Intel will have no obligations with respect to the Communications. You hereby grant to Intel a non-exclusive, perpetual, irrevocable, royalty-free, copyright license to copy, modify, create Derivative Works, publicly display, disclose, distribute, license and sublicense through multiple tiers of distribution and licensees, incorporate and otherwise use the Communications and all data, images, sounds, text, and other things embodied therein, including Derivative Works thereto, for any and all commercial or non-commercial purposes. You are prohibited from posting or transmitting to or from an Intel website or provide to Intel any unlawful, threatening, libelous, defamatory, obscene, pornographic, or other material that would violate any law. If You wish to provide Intel with information that You intend to be treated as confidential information, Intel requires that such confidential information be provided pursuant to a non-disclosure agreement (“NDA”); please contact Your Intel representative to ensure the proper NDA is in place. 563 | 564 | Nothing in this Agreement will be construed as preventing Intel from reviewing Your Communications and errors or defects in Intel products discovered while reviewing Your Communications. Furthermore, nothing in this Agreement will be construed as preventing Intel from implementing independently-developed enhancements to Intel’s own error diagnosis methodology to detect errors or defects in Intel products discovered while reviewing Your Communications or to implement bug fixes or enhancements in Intel products. The foregoing may include the right to include Your Communications in regression test suites. 565 | 566 | 10. NON-DISCLOSURE. Information provided by Intel to You may include information marked as confidential. You must treat such information as confidential under the terms of the applicable NDA between Intel and You. If You have not entered into an NDA with Intel, You must not disclose, distribute or make use of any information marked as confidential, except as expressly authorized in writing by Intel. Intel retains all rights in and to its confidential information specifications, designs, engineering details, discoveries, inventions, patents, copyrights, trademarks, trade secrets and other proprietary rights relating to the Materials. Any breach by You of the confidentiality obligations provided for in this Section 10 will cause irreparable injury to Intel for which money damages may be inadequate to compensate Intel for losses arising from such a breach. Intel may obtain equitable relief, including injunctive relief, if You breach or threaten to breach Your confidentiality obligations. 567 | 568 | 11. TERMINATION OF THIS LICENSE. This Agreement becomes effective on the date You accept this Agreement and will continue until terminated as provided for in this Agreement. If You are using the Materials under a license with a limited Term, this Agreement terminates without notice on the last day of the license Term. Intel may terminate this license immediately if You are in breach of any of its terms and conditions and such breach is not cured within thirty (30) days of written notice from Intel. Upon termination, You will immediately return to Intel or destroy the Materials and all copies. In the event of termination of this Agreement, the license grant to any Redistributables distributed by You in accordance with the terms and conditions of this Agreement, prior to the effective date of such termination, will survive any such termination of this Agreement. Sections 1, 2.3, 5, 6, 7, 8, 9, 10, 11, 12, and 13 will survive expiration or termination of this Agreement. 569 | 570 | 12. U.S. GOVERNMENT RESTRICTED RIGHTS. The technical data and computer software covered by this license is a “Commercial Item,” as such term is defined by the FAR 2.101 (48 C.F.R. 2.101) and is “commercial computer software” and “commercial computer software documentation” as specified under FAR 12.212 (48 C.F.R. 12.212) or DFARS 227.7202 (48 C.F.R. 227.7202), as applicable. This commercial computer software and related documentation is provided to end users for use by and on behalf of the U.S. Government, with only those rights as are granted to all other end users pursuant to the terms and conditions herein. 571 | 572 | 13. GENERAL PROVISIONS. 573 | 574 | 13.1 ENTIRE AGREEMENT. This Agreement contains the complete and exclusive agreement and understanding between the parties concerning the subject matter of this Agreement, and supersedes all prior and contemporaneous proposals, agreements, understanding, negotiations, representations, warranties, conditions, and communications, oral or written, between the parties relating to the same subject matter. This Agreement, including without limitation its termination, has no effect on any signed NDA between the parties, which remain in full force and effect as separate agreements to their terms. Each party acknowledges and agrees that in entering into this Agreement it has not relied on, and will not be entitled to rely on, any oral or written representations, warranties, conditions, understanding, or communications between the parties that are not expressly set forth in this Agreement. The express provisions of this Agreement control over any course of performance, course of dealing, or usage of the trade inconsistent with any of the provisions of this Agreement. The provisions of this Agreement will prevail notwithstanding any different, conflicting, or additional provisions that may appear on any purchase order, acknowledgement, invoice, or other writing issued by either party in connection with this Agreement. No modification or amendment to this Agreement will be effective unless in writing and signed by authorized representatives of each party, and must specifically identify this Agreement by its title and version (e.g., “Intel End User License Agreement for Developer Tools (Version September 2019)”); except that Intel may make changes to the Agreement as it distributes new versions of the Materials. When changes are made, Intel will make a new version of the Agreement available on its website. If You received a copy of this Agreement translated into another language, the English language version of this Agreement will prevail in the event of any conflict between versions. 575 | 576 | 13.2 EXPORT. You acknowledge that the Materials and all related technical information are subject to export controls and you agree to comply with all laws and regulations of the United States and other applicable governments governing export, re-export, import, transfer, distribution, and use of the Materials. In particular, but without limitation, the Materials may not be exported or re-exported (a) into any U.S. embargoed countries or (b) to any person or entity listed on a denial order published by the U.S. government or any other applicable governments. By using the Materials, You represent and warrant that You are not located in any such country or on any such list. You also agree that You will not use the Materials for, or sell or transfer them to a third party who is known or suspected to be involved in, any purposes prohibited by the U.S. government or other applicable governments, including, without limitation, the development, design, manufacture, or production of nuclear, missile, chemical or biological weapons. 577 | 578 | 13.3 GOVERNING LAW, JURISDICTION, AND VENUE. All disputes arising out of or related to this Agreement, whether based on contract, tort, or any other legal or equitable theory, will in all respects be governed by, and construed and interpreted under, the laws of the United States of America and the State of Delaware, without reference to conflict of laws principles. The parties agree that the United Nations Convention on Contracts for the International Sale of Goods (1980) is specifically excluded from and will not apply to this Agreement. All disputes arising out of or related to this Agreement, whether based on contract, tort, or any other legal or equitable theory, will be subject to the exclusive jurisdiction of the courts of the State of Delaware or of the Federal courts sitting in that State. Each party submits to the personal jurisdiction of those courts and waives all objections to that jurisdiction and venue for those disputes. 579 | 580 | 13.4 SEVERABILITY. The parties intend that if a court holds that any provision or part of this Agreement is invalid or unenforceable under applicable law, the court will modify the provision to the minimum extent necessary to make it valid and enforceable, or if it cannot be made valid and enforceable, the parties intend that the court will sever and delete the provision or part from this Agreement. Any change to or deletion of a provision or part of this Agreement under this Section will not affect the validity or enforceability of the remainder of this Agreement, which will continue in full force and effect. 581 | 582 | * Other names and brands may be claimed as the property of others 583 | 584 | 585 | ----------------------------------------------------- 586 | Intel® Math Kernel Library 587 | Copyright Intel Corporation 588 | 589 | Intel® MPI Library 590 | Copyright Intel Corporation 591 | 592 | Intel Simplified Software License (Version February 2020) 593 | 594 | Use and Redistribution. You may use and redistribute the software (the “Software”), without modification, provided the following conditions are met: 595 | 596 | Redistributions must reproduce the above copyright notice and the following terms of use in the Software and in the documentation and/or other materials provided with the distribution. 597 | Neither the name of Intel nor the names of its suppliers may be used to endorse or promote products derived from this Software without specific prior written permission. 598 | No reverse engineering, decompilation, or disassembly of this Software is permitted. 599 | Limited patent license. Intel grants you a world-wide, royalty-free, non-exclusive license under patents it now or hereafter owns or controls to make, have made, use, import, offer to sell and sell (“Utilize”) this Software, but solely to the extent that any such patent is necessary to Utilize the Software alone. The patent license shall not apply to any combinations which include this software. No hardware per se is licensed hereunder. 600 | 601 | Third party programs. The Software may contain Third Party Programs. “Third Party Programs” are third party software, open source software or other Intel software listed in the “third-party-programs.txt” or other similarly named text file that is included with the Software. Third Party Programs, even if included with the distribution of the Software, may be governed by separate license terms, including without limitation, third party license terms, open source software notices and terms, and/or other Intel software license terms. These separate license terms may govern your use of the Third Party Programs. 602 | 603 | DISCLAIMER. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED. THIS SOFTWARE IS NOT INTENDED FOR USE IN SYSTEMS OR APPLICATIONS WHERE FAILURE OF THE SOFTWARE MAY CAUSE PERSONAL INJURY OR DEATH AND YOU AGREE THAT YOU ARE FULLY RESPONSIBLE FOR ANY CLAIMS, COSTS, DAMAGES, EXPENSES, AND ATTORNEYS’ FEES ARISING OUT OF ANY SUCH USE, EVEN IF ANY CLAIM ALLEGES THAT INTEL WAS NEGLIGENT REGARDING THE DESIGN OR MANUFACTURE OF THE MATERIALS. 604 | 605 | LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. YOU AGREE TO INDEMNIFY AND HOLD INTEL HARMLESS AGAINST ANY CLAIMS AND EXPENSES RESULTING FROM YOUR USE OR UNAUTHORIZED USE OF THE SOFTWARE. 606 | 607 | No support. Intel may make changes to the Software, at any time without notice, and is not obligated to support, update or provide training for the Software. 608 | 609 | Termination. Intel may terminate your right to use the Software in the event of your breach of this Agreement and you fail to cure the breach within a reasonable period of time. 610 | 611 | Feedback. Should you provide Intel with comments, modifications, corrections, enhancements or other input (“Feedback”) related to the Software Intel will be free to use, disclose, reproduce, license or otherwise distribute or exploit the Feedback in its sole discretion without any obligations or restrictions of any kind, including without limitation, intellectual property rights or licensing obligations. 612 | 613 | Compliance with laws. You agree to comply with all relevant laws and regulations governing your use, transfer, import or export (or prohibition thereof) of the Software. 614 | 615 | Governing law. All disputes will be governed by the laws of the United States of America and the State of Delaware without reference to conflict of law principles and subject to the exclusive jurisdiction of the state or federal courts sitting in the State of Delaware, and each party agrees that it submits to the personal jurisdiction and venue of those courts and waives any objections. The United Nations Convention on Contracts for the International Sale of Goods (1980) is specifically excluded and will not apply to the Software. 616 | 617 | ----------------------------------------------------- 618 | 619 | The following third party programs have their own third party programs. These 620 | additional third party program files are as follows: 621 | 622 | 1. Intel(R) Parallel Studio XE /parallel_studio_xe_./licensingthird-party-programs.txt 623 | 2. Intel(R) Math Kernel Library (Intel(R) MKL) /compilers_and_libraries_2020.1./licensing/en/third-party-programs.txt 624 | 625 | ----------------------------------------------------- 626 | *Other names and brands may be claimed as the property of others. 627 | -------------------------------------------------------------------------------- /definitionFiles/lammps/lammpsBuild.def: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020 Intel Corporation 2 | 3 | Bootstrap: scratch 4 | 5 | ####################################### 6 | %help 7 | ######## 8 | This container build the binaries and dependencies from source codes 9 | 10 | ################################################## 11 | %pre 12 | ########### 13 | # Setup the proxies and env variables for building the code 14 | 15 | INTEL_VERSION=${INTEL_VERSION:-2019.4.243} 16 | INTEL_INSTALL_FOLDER=${INTEL_INSTALL_FOLDER:-/opt/intel} 17 | compiler="compilers_and_libraries_${INTEL_VERSION}" 18 | source ${INTEL_INSTALL_FOLDER}/${compiler}/linux/bin/compilervars.sh intel64 19 | 20 | export base=`pwd` 21 | appinfo=${base}/appinfo 22 | touch ${appinfo} 23 | echo "****************appinfo of this container*************" >> ${appinfo} 24 | date >> ${appinfo} 25 | 26 | export BENCH_DIR="$base/lammps-avx512" 27 | 28 | echo "Get the codes and any dependencies" 29 | rm -rf $BENCH_DIR 30 | rm -rf lammps 31 | git clone -b stable_3Mar2020 https://github.com/lammps/lammps.git $base/lammps ; echo "stable_3Mar2020" >> ${appinfo} 32 | 33 | 34 | cd $base/lammps 35 | 36 | echo "Build the code" 37 | cd $base/lammps/src/ ; cat version.h >> ${appinfo} 38 | make yes-asphere yes-class2 yes-kspace yes-manybody yes-misc yes-molecule 39 | make yes-mpiio yes-opt yes-replica yes-rigid 40 | make yes-user-omp yes-user-intel 41 | export LMP_ROOT="../../../" 42 | make intel_cpu_intelmpi -j 43 | LMP_BIN="${base}/lammps/src/lmp_intel_cpu_intelmpi" 44 | 45 | echo "Create data files" 46 | mkdir -p $BENCH_DIR 47 | cp -rf $LMP_BIN $BENCH_DIR 48 | cp -rf ./USER-INTEL/TEST/in.* ./USER-INTEL/TEST/mW* $BENCH_DIR 49 | cp -rf ../bench/Cu_u3.eam ../bench/data.rhodo $BENCH_DIR 50 | cp -rf ../bench/POTENTIALS/Si.* $BENCH_DIR 51 | cp -rf ../examples/airebo/data.airebo ../potentials/CH.airebo $BENCH_DIR 52 | 53 | 54 | cd $BENCH_DIR 55 | files=`echo in.*`; 56 | for file in $files 57 | do 58 | sed -i 's/\${root}.*\///g' $file 59 | done 60 | 61 | which icc >> ${appinfo} 62 | icc --version >> ${appinfo} 63 | mpirun --version >> ${appinfo} 64 | cp ${appinfo} $BENCH_DIR/ 65 | 66 | cd $BENCH_DIR 67 | echo " generating the lc workload ..." 68 | mpirun -np 20 ./lmp_intel_cpu_intelmpi -in in.lc_generate_restart -log lc.log -pk intel 0 -sf intel 69 | 70 | ################# 71 | %setup 72 | ####### 73 | CONTAINTERS_HOME=${CONTAINERS_HOME:-/nfs/pdx/home/Containers/binaries} 74 | install -d ${CONTAINERS_HOME} 75 | NAME="lammps" 76 | ARCH="avx512" 77 | KEY="ALL" 78 | APP="${NAME}-${ARCH}" 79 | 80 | tar cfv ${APP}.tar ${APP} 81 | chmod -R 777 * 82 | 83 | #cleanup 84 | cp -rf ${NAME} ${CONTAINTERS_HOME}/${NAME}${KEY} 85 | cp -r ${APP}* ${CONTAINTERS_HOME}/ 86 | #rm -rf ${NAME}* 87 | 88 | -------------------------------------------------------------------------------- /definitionFiles/lammps/lammpsRun.def: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020 Intel Corporation 2 | 3 | Bootstrap: localimage 4 | From: /tmp/base.simg 5 | 6 | ####################################### 7 | %help 8 | ######## 9 | another example 10 | EXAMPLES: 11 | - Available apps: 12 | $ singularity apps 13 | lammps 14 | multinode 15 | multinodeResults 16 | sysinfo 17 | appinfo 18 | clean 19 | 20 | - Example to run on singlenode: 21 | $ singularity run --writable-tmpfs --app lammps 22 | 23 | - Example to run using the host's runtime libraries 24 | $ export SINGULARITY_BINDPATH="/opt/intel/compilers_and_libraries_2019.4.243:/opt/intel/compilers_and_libraries_2019.4.243,/opt/intel/compilers_and_libraries_2019.4.243:/mnt" 25 | $ singularity run --writable-tmpfs --app lammps 26 | 27 | - Cluster run with the workload from the container (airebo, dpd, eam, lc, lj, water, rhodo, sw): 28 | $ mpiexec.hydra -hostfile nodelist -ppn $PPN -np $NP singularity run --app multinode lammps.simg $workloadname $OMP_NUM_THREADS 29 | 30 | Example to run the polyethelene(airebo) workload on a SKL: 31 | $ mpirun -f hostfile -ppn 40 -np 160 singularity run --app multinode $containers/avx/lammps.simg airebo 2 32 | 33 | - Run multiple apps: 34 | $ for app in sysinfo lammps ; do singularity run --app $app ; done 35 | 36 | - Run with the exec command: 37 | $ singularity exec lammps.simg /lammps-avx512/lmp_intel_cpu_intelmpi -in /lammps-avx512/in.intel.lj -log lj.log -pk intel 0 omp 2 -sf intel -v m 0.2 -screen none 38 | 39 | - To parse the results : 40 | $ singularity run --app multinodeResults <$container> 41 | 42 | 43 | - To write results to your directory of choice, set the CUSTOM_RESULTS_DIR variable at runtime as: 44 | $ SINGULARITYENV_CUSTOM_RESULTS_DIR=/tmp/candy singularity run --app $APPNAME container.simg 45 | OR 46 | $ export SINGULARITYENV_CUSTOM_RESULTS_DIR=/tmp/candy 47 | $ singularity run .... 48 | 49 | ############################################### 50 | %environment 51 | ############# 52 | now=`date '+%Y_%m_%d'` 53 | hostname=`hostname` 54 | 55 | APPNAME="lammps" 56 | OUTPUT_DIR=${HOME}/${APPNAME} 57 | LOG="${hostname}_${APPNAME}_${now}" 58 | RESULTS="${hostname}_${APPNAME}_${now}.results" 59 | CSV="${hostname}_${APPNAME}_${now}.csv" 60 | SYSCONFIG="${hostname}_${APPNAME}_${now}.sysconfig" 61 | APPINFO="${hostname}_${APPNAME}_${now}.appinfo" 62 | 63 | if [ -n "$CUSTOM_RESULTS_DIR" ]; then 64 | RESULTS_DIR=$CUSTOM_RESULTS_DIR 65 | else 66 | RESULTS_DIR=$OUTPUT_DIR 67 | fi 68 | 69 | WORKDIR="$SINGULARITY_ROOTFS/WORKSPACE" 70 | 71 | ARCH="avx512" 72 | export APPNAME OUTPUT_DIR LOG RESULTS CSV SYSCONFIG APPINFO WORKDIR now hostname RESULTS_DIR ARCH 73 | export I_MPI_SHM_LMT 74 | 75 | ######################################## 76 | %apprun lammps 77 | ############### 78 | which mpirun 79 | echo $ARCH 80 | RESULTS_DIR="${RESULTS_DIR}-${ARCH}" 81 | 82 | if [ ! -x "${RESULTS_DIR}" ]; then 83 | mkdir -p ${RESULTS_DIR} 84 | fi 85 | 86 | NUMCORES=$1 87 | OMP_NUM_THREADS=$2 88 | echo "args: $#" 89 | 90 | nproc=`nproc` 91 | sockets=`lscpu | grep Socket |awk '{print $2}'` 92 | ncores=`lscpu | grep Core | awk '{print $4}'` 93 | 94 | if [ -z "$NUMCORES" ] && [ -z "$OMP_NUM_THREADS" ]; then 95 | OMP_NUM_THREADS=`lscpu | grep Thread |awk '{print $4}'` 96 | NUMCORES=$((ncores * sockets)) 97 | echo "You didn't specify OMP_NUM_THREADS or number of cores. So running with $NUMCORES cores and OMP_NUM_THREADS = $OMP_NUM_THREADS" 98 | echo " Next time, you can run us: $ singularity run --app lammps " 99 | fi 100 | 101 | WORKDIR=$WORKDIR/$APPNAME-$ARCH 102 | cd $WORKDIR 103 | pwd 104 | 105 | files=`echo in.intel.*` 106 | echo "OMP_NUM_THREADS=$OMP_NUM_THREADS" 107 | echo "NUMCORES=$NUMCORES" 108 | echo "mpiexec.hydra -np $NUMCORES ./lmp_intel_cpu_intelmpi -in -log none -pk intel 0 omp $OMP_NUM_THREADS -sf intel -v m 1 -screen" 109 | 110 | export OMP_NUM_THREADS=$OMP_NUM_THREADS 111 | 112 | for file in $files 113 | do 114 | name=`echo $file | sed 's/in\.intel\.//g'` 115 | log="${RESULTS_DIR}/${LOG}_${name}" 116 | echo -n "Running: $name " |tee -a $DIR/$RESULTS 117 | mpiexec.hydra -np $NUMCORES ./lmp_intel_cpu_intelmpi -in $file -log none -pk intel 0 omp $OMP_NUM_THREADS -sf intel -v m 1 -screen $log 118 | printf "${name} " >> $RESULTS_DIR/$RESULTS; grep 'Perform' $log | awk 'BEGIN{n=1}n%2==0{c=NF-1; print "Performance-:",$c,"timesteps/sec"}{n++}' |tee -a $RESULTS_DIR/$RESULTS 119 | done 120 | 121 | awk 'BEGIN{print "WORKLOAD,FOM,UNIT"}{print $1","$3","$4}' $RESULTS_DIR/$RESULTS >> $RESULTS_DIR/$CSV 122 | 123 | echo "Output file $RESULTS and all the logs for each workload $LOG ... are located at $RESULTS_DIR" 124 | ############################################## 125 | %apprun multinode 126 | ######################## 127 | which mpirun 128 | 129 | WORKDIR=$WORKDIR/$APPNAME-$ARCH 130 | cd $WORKDIR 131 | RESULTS_DIR="${RESULTS_DIR}-${ARCH}" 132 | 133 | if [ ! -x "${RESULTS_DIR}" ]; then 134 | mkdir -p ${RESULTS_DIR} 135 | fi 136 | 137 | WORKLOAD=$1 138 | OMP_NUM_THREADS=$2 139 | 140 | if [ -z "$WORKLOAD" ] && [ -z "$OMP_NUM_THREADS" ]; then 141 | OMP_NUM_THREADS=2 142 | echo "You didn't specify OMP_NUM_THREADS. So running with OMP_NUM_THREADS = $OMP_NUM_THREADS" 143 | echo " You didn't specify a workload. Please try again! 144 | Run: singularity help $containerName.simg for runing instructions." 145 | exit 1 146 | fi 147 | 148 | file="in.intel.$WORKLOAD" 149 | name=`echo $file | sed 's/in\.intel\.//g'` 150 | log="${RESULTS_DIR}/${name}_multinode_${now}" 151 | 152 | echo -n ".. " 153 | ./lmp_intel_cpu_intelmpi -in $file -v x 4 -v y 2 -v z 2 -pk intel 0 omp $OMP_NUM_THREADS -sf intel -screen $log 154 | 155 | ############################################## 156 | %apprun multinodeResults 157 | ######################## 158 | ARCH="avx512" 159 | 160 | RESULTS_DIR="${RESULTS_DIR}-${ARCH}" 161 | CSV="multinode-$CSV" 162 | WORKDIR=$WORKDIR/$APPNAME-$ARCH 163 | cd $WORKDIR 164 | 165 | files=`echo in.intel.*` 166 | 167 | for file in $files 168 | do 169 | name=`echo $file | sed 's/in\.intel\.//g'` 170 | log="${RESULTS_DIR}/${name}_multinode_${now}" 171 | printf "${name} " |tee -a $RESULTS_DIR/$RESULTS; grep 'Perform' $log | awk 'BEGIN{n=1}n%2==0{c=NF-1; print "- Performance",$c,"timesteps/sec"}{n++}' |tee -a $RESULTS_DIR/$RESULTS 172 | echo "" |tee -a $RESULTS_DIR/$RESULTS 173 | done 174 | 175 | awk 'BEGIN{print "WORKLOAD,FOM,UNIT"}{print $1","$3","$4}' $RESULTS_DIR/$RESULTS >> $RESULTS_DIR/$CSV 176 | 177 | echo "FOM for is in ns/days. Higher is better. Choose the highest value for each workload accross all the runs." 178 | 179 | ################################################## 180 | %setup 181 | ########### 182 | # Setup the proxies and env variables for building the code 183 | export WORKDIR="$SINGULARITY_ROOTFS/WORKSPACE" 184 | mkdir -p $WORKDIR 185 | 186 | APP="lammps" 187 | ARCH="avx512" 188 | CONTAINTERS_HOME=${CONTAINERS_HOME:-/nfs/pdx/home/Containers/binaries} 189 | BIN="${CONTAINTERS_HOME}/$APP-${ARCH}" 190 | 191 | # Copy all the binaries and anything else needed to run your binaries 192 | cp -r $BIN $WORKDIR/ 193 | if test -f sysinfo.sh; then cp sysinfo.sh -P $WORKDIR/ ; fi 194 | if test -d appinfo; then cp appinfo/${APP}* -P $WORKDIR/; fi 195 | 196 | chmod -R 777 $WORKDIR/* 197 | 198 | exit 0 199 | 200 | ############################################# 201 | %apprun sysinfo 202 | ############### 203 | echo "Getting system configuration" 204 | cd $WORKDIR 205 | RESULTS_DIR="${RESULTS_DIR}-${ARCH}" 206 | if test -f sysinfo.sh; then ./sysinfo.sh > $RESULTS_DIR/$SYSCONFIG; fi 207 | 208 | echo "The $SYSCONFIG is located at $RESULTS_DIR" 209 | 210 | ################################ 211 | %apprun appinfo 212 | ############### 213 | cd $WORKDIR 214 | RESULTS_DIR="${RESULTS_DIR}-${ARCH}" 215 | APP="lammps" 216 | cat ${APP} |tee $RESULTS_DIR/$APPINFO 217 | echo "Run command: mpiexec.hydra -np $NUMCORES ./lmp_intel_cpu_intelmpi -in $file -log none -pk intel 0 omp $OMP_NUM_THREADS -sf intel -v m 1" |tee -a $RESULTS_DIR/$APPINFO 218 | 219 | cd $APP-$ARCH 220 | if test -d appinfo; then cat appinfo |tee -a $RESULTS_DIR/$APPINFO; fi 221 | 222 | ################################# 223 | %apprun clean 224 | ############# 225 | echo "deleting files $LOG $SYSCONFIG from $RESULTS_DIR" 226 | RESULTS_DIR="${RESULTS_DIR}-${ARCH}" 227 | rm -rf $RESULTS_DIR 228 | 229 | ################# 230 | %apprun metadata 231 | ################# 232 | echo "AUTHOR/Maintainer: smahane.douyeb@intel.com" 233 | echo "Maintainer: tim.mefford@intel.com" 234 | VERSION="version" 235 | echo "GitlabVersion : $VERSION" 236 | echo " " 237 | cat /.singularity.d/labels.json 238 | -------------------------------------------------------------------------------- /definitionFiles/namd/Licence.txt: -------------------------------------------------------------------------------- 1 | Copyright 2020 Intel Corporation 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /definitionFiles/namd/README.md: -------------------------------------------------------------------------------- 1 | # Intel-Hpc-Containers 2 | 3 | - LEGAL NOTICE: By downloading and using this build file (the “Software Package”) and the included software or software made available for download, you agree to the terms and conditions of the software license agreements for the Software Package, which may also include notices, disclaimers, or license terms for third party software (together, the “Agreements”) included in this README file. 4 | 5 | - This Singularity definition file will automatically download : 6 | 7 | * CHARM++ 8 | - Download Location: (http://charm.cs.illinois.edu/distrib/charm-6.8.2.tar.gz ) 9 | - License: (http://charm.cs.illinois.edu/distrib/LICENSE) 10 | Legal Notice: Please note that Charm++ is licensed “for academic and research purposes only” per the terms of the license. Please review the full license text at https://charm.readthedocs.io/en/latest/license.html.” 11 | * NAMD 12 | - Download Location: (https://www.ks.uiuc.edu/Development/Download/download.cgi?PackageName=NAMD) 13 | - License: (http://www.ks.uiuc.edu/Research/namd/2.9/ug/node1.html) 14 | Legal Notice: Please note that NAMD is licensed for “non-commercial use only” per the terms of the license. Please review the full license text at https://www.ks.uiuc.edu/Research/namd/license.html 15 | * NAMD Benchmark Files 16 | - APOA1 Download Location: 17 | - (http://www.ks.uiuc.edu/Research/namd/utilities/apoa1.tar.gz) 18 | - (http://www.ks.uiuc.edu/Research/namd/2.13/benchmarks/apoa1_nptsr_cuda.namd) 19 | - STMV Download Location: 20 | - (http://www.ks.uiuc.edu/Research/namd/utilities/stmv.tar.gz) 21 | - (http://www.ks.uiuc.edu/Research/namd/2.13/benchmarks/stmv_nptsr_cuda.namd) 22 | * TCL 23 | - Download Location: (https://github.com/tcltk/tcl.git) 24 | - License Location: (https://www.tcl.tk/software/tcltk/license.html) 25 | -------------------------------------------------------------- 26 | Create containers with Singularity version 3.x for HPC apps for Single and Cluster runs for Intel avx512 enabled plarforms: 27 | 28 | o The Singularity definition file will require these programs to be pre-installed: 29 | 30 | - Singularity 3.x version (https://sylabs.io/guides/3.5/admin-guide/installation.html) 31 | - Intel® Parallel Studio XE (https://software.intel.com/content/www/us/en/develop/tools/parallel-studio-xe/choose-download.html) 32 | - Super user access to the system 33 | - Centos (for other OSs, you will need to modify the instructions/recipe accordingly) 34 | 35 | 36 | 37 | Instructions to build a container: 38 | 39 | 1. Build the binaries and dependencies from the Build definitin file : 40 | 41 | `$ sudo singularity build ` 42 | 43 | This will generate the binaries that you will need in step #3 and a container that you can use or ignore 44 | 45 | 46 | 2. Build the base container that includes the OS, Intel runtime libraries, and some independencies . Build it from the base https://github.com/intel/HPC-containers-from-Intel/blob/master/definitionFiles/base/base.def recipe as: 47 | 48 | `$ sudo singularity build /tmp/base.simg base` 49 | 50 | 51 | 3. Build the container . You may need to adjust and tweak the recipe a little bit to point out to your binaries, programs, and dependencies. You will need: 52 | 53 | * The binaries from step #1 54 | * The /tmp/base.simg container from step #2 55 | 56 | `$ sudo singularity build --force ` 57 | 58 | 59 | **Run instructions**: 60 | 61 | `$ singularity run-help ` 62 | 63 | -------------------------------------------------------------------------------- /definitionFiles/namd/namdBuild.def: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020 Intel Corporation 2 | # Legal Notice: See README file for licensing and other important information before using this file. 3 | 4 | Bootstrap: scratch 5 | #################################################################################### 6 | %help 7 | ##### 8 | This container build the binaries and dependencies from source codes 9 | 10 | ################################################################################# 11 | %pre 12 | ##### 13 | #source intel compiler here 14 | 15 | INTEL_VERSION=${INTEL_VERSION:-2020.4.304} 16 | INTEL_INSTALL_FOLDER=${INTEL_INSTALL_FOLDER:-/opt/intel} 17 | compiler="compilers_and_libraries_${INTEL_VERSION}" 18 | 19 | source ${INTEL_INSTALL_FOLDER}/${compiler}/linux/bin/compilervars.sh intel64 20 | source ${INTEL_INSTALL_FOLDER}/${compiler}/linux/mpi/intel64/bin/mpivars.sh 21 | source ${INTEL_INSTALL_FOLDER}/${compiler}/linux/mkl/bin/mklvars.sh intel64 22 | 23 | base=`pwd` 24 | appinfo=$base/appinfo 25 | touch ${appinfo} 26 | date >> ${appinfo} 27 | 28 | APP="namd-avx512" 29 | APOA1="$base/apoa1" 30 | STMV="$base/stmv" 31 | 32 | echo " Cleanup" 33 | cd $base 34 | rm -rf charm* tcl* apoa* stmv* 35 | mkdir apoa1 stmv 36 | 37 | echo "Get libraries" 38 | wget http://www.ks.uiuc.edu/Research/namd/utilities/apoa1.tar.gz 39 | wget http://www.ks.uiuc.edu/Research/namd/utilities/stmv.tar.gz 40 | 41 | # Standard APOA1 and STMV benchmarks using NPT, 1fs timestep, PME every 4 42 | tar -xvf apoa*.gz -C $APOA1 --strip-components=1 43 | tar -xvf stmv*.gz -C $STMV --strip-components=1 44 | 45 | # APOA1 and STMV with 2fs timestep configurations (NPT, PME every 2) 46 | cd $APOA1 47 | wget http://www.ks.uiuc.edu/Research/namd/2.13/benchmarks/apoa1_nptsr_cuda.namd 48 | sed -i 's/ldbalancer.*none//g' apoa1_nptsr_cuda.namd 49 | cd $STMV 50 | wget http://www.ks.uiuc.edu/Research/namd/2.13/benchmarks/stmv_nptsr_cuda.namd 51 | sed -i 's/ldbalancer.*none//g' stmv_nptsr_cuda.namd 52 | 53 | chmod -R 777 $APOA1 $STMV 54 | #Fix and modify workload values 55 | sed -i -e '/numsteps/s/500/1000/' $APOA1/apoa1.namd 56 | sed -i -e "/outputtiming/a\\outputenergies 600" $APOA1/apoa1.namd 57 | sed -i -e '/numsteps/s/500/1000/' $STMV/stmv.namd 58 | sed -i -e '/outputEnergies/s/20/600/' $STMV/stmv.namd 59 | sed -i 's/;//g' $STMV/stmv.namd 60 | 61 | cd $base 62 | rm -rf namd 63 | git clone https://charm.cs.illinois.edu/gerrit/namd.git -b release-2-15-alpha-1 --depth 1 namd 64 | # if this clone doesn't work, request access to the namd gitlab repo: 65 | # https://gitlab.com/tcbgUIUC/namd 66 | # and download the code before you run the container: 67 | # git clone git@gitlab.com:tcbgUIUC/namd.git -b release-2-15-alpha-1 --depth 1 release-2-15-alpha-1 68 | # cp -r /release-2-15-alpha-1 namd" 69 | cd namd 70 | git clone https://github.com/UIUC-PPL/charm.git -b v6.10.2 --depth 1 ; echo "charm++ version: v6.10.2 " >>${appinfo} 71 | git clone https://github.com/tcltk/tcl.git -b core-8-5-branch --depth 1 ; echo "tcl version: core-8-5-branch" >>${appinfo} 72 | 73 | echo "build tcl" 74 | export NAMD_TCL_BASE="`pwd`/tcl" 75 | cd tcl/unix 76 | ./configure --disable-shared --prefix=$NAMD_TCL_BASE 77 | make install -j 78 | 79 | echo "build charm++ for single node" 80 | cd $base/namd/charm 81 | export CC=icc; export CXX=icpc; export F90=ifort; export F77=ifort 82 | ./build charm++ multicore-linux64 iccstatic -j36 --with-production "-O3 -ip -g -xCORE-AVX512 -qopt-zmm-usage=high" 2>&1 | tee buildSinglenode.log 83 | 84 | echo "Build namd for singlenode" 85 | cd $base/namd 86 | ./config Linux-AVX512-icc --charm-base $base/namd/charm --with-mkl --charm-opts --tcl-prefix=$NAMD_TCL_BASE 87 | cd Linux-AVX512-icc 88 | make clean 89 | make -j 2>&1 | tee make.log 90 | 91 | 92 | echo "build charm for multi-node" 93 | cd $base/namd/charm 94 | export MPICXX=mpiicpc 95 | export MPI_CXX=mpiicpc 96 | I_MPI_CC=icc;I_MPI_CXX=icpc;I_MPI_F90=ifort;I_MPI_F77=ifort 97 | export I_MPI_CC I_MPI_CXX I_MPI_F90 I_MPI_F7 98 | ./build charm++ mpi-linux-x86_64 smp mpicxx -j36 --with-production "-O3 -ip -xCORE-AVX512" -DCMK_OPTIMIZE -DMPICH_IGNORE_CXX_SEEK 2>&1 | tee buildMultinode.log 99 | 100 | echo "Build namd for multi-node with mpi" 101 | I_MPI_CC=icc; I_MPI_CXX=icpc; I_MPI_F90=ifort; I_MPI_F77=ifort 102 | CC=icc; CXX=icpc; F90=ifort; F77=ifort 103 | export CC CXX F90 F77 104 | export I_MPI_LINK=opt_mt 105 | export I_MPI_CC I_MPI_CXX I_MPI_F90 I_MPI_F77 106 | cd $base/namd 107 | cp arch/Linux-AVX512-icc.arch arch/Linux-AVX512MPI.arch 108 | ./config Linux-AVX512MPI --charm-base $base/namd/charm --charm-arch mpi-linux-x86_64-smp-mpicxx --with-mkl --charm-opts --tcl-prefix=$NAMD_TCL_BASE 109 | cd Linux-AVX512MPI 110 | make clean 111 | make -j 2>&1 | tee makeMultinode.log 112 | 113 | which icc >> ${appinfo} 114 | icc --version >> ${appinfo} 115 | mpirun --version >> ${appinfo} 116 | 117 | cd $base 118 | mkdir -p $APP 119 | cp -rf $base/namd/Linux-AVX512-icc/namd2 $APP/ 120 | cp -rf $base/namd/Linux-AVX512MPI/namd2 $APP/namd2_mpi 121 | cp -rf $APOA1 $APP/ 122 | cp -rf $STMV $APP/ 123 | cp -rf ${appinfo} $base/$APP/ 124 | 125 | chmod -R 777 $APP/* 126 | exit 0 127 | -------------------------------------------------------------------------------- /definitionFiles/namd/namdRun.def: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020 Intel Corporation 2 | 3 | Bootstrap: localimage 4 | From: /tmp/base.simg 5 | 6 | #################################################################################### 7 | %help 8 | #################################################################################### 9 | EXAMPLES: 10 | - Available apps: 11 | $ singularity apps 12 | namd 13 | multinode 14 | multinodeHelp 15 | sysinfo 16 | clean 17 | - Single node run as: 18 | $ singularity run --writable-tmpfs --app namd $ppn 19 | 20 | - Cluster run (workloads available apoa1, stmv, apoa1_nptsr_cuda.namd, and stmv_nptsr_cuda.namd): 21 | 22 | $ export SINGULARITYENV_LD_LIBRARY_PATH=$LD_LIBRARY_PATH 23 | $ export MPPEXEC="time -p mpiexec.hydra -genv I_MPI_DEBUG 5 -perhost $PPN" 24 | $ MPPEXEC -hostfile hostfile n $nproc singularity run -B /opt/intel/${version} --app multinode namd.simg $WORKLOAD $NUMNODES $PPN $NCORES $HT 25 | 26 | Example to run on 8 nodes, 44 physical core SKL system using 4 processes per node: 27 | $ export SINGULARITYENV_LD_LIBRARY_PATH=$LD_LIBRARY_PATH 28 | $ export MPPEXEC="time -p mpiexec.hydra -genv I_MPI_DEBUG 5 -perhost 4" 29 | $ MPPEXEC -hostfile hostfile n 32 singularity run -B /opt/intel/compilers_and_libraries_2018.3.222 --app multinode namd.simg apoa1 8 4 44 30 | 31 | Example to run with hyper threading if available: 32 | 33 | export SINGULARITYENV_LD_LIBRARY_PATH=$LD_LIBRARY_PATH 34 | $ export MPPEXEC="time -p mpiexec.hydra -genv I_MPI_DEBUG 5 -perhost 4" 35 | $ MPPEXEC -hostfile hostfile n 32 singularity run -B /opt/intel/compilers_and_libraries_2018.3.222 --app multinode namd.simg apoa1 8 4 44 ht 36 | 37 | - More examples of how to run on a cluster: 38 | $ singularity run --app multinodeHelp namd.simg 39 | 40 | - To parse the results: 41 | $ singularity run --app multinodeResults namd.simg 42 | 43 | - To write results to your directory of choice, set the CUSTOM_RESULTS_DIR variable at runtime as: 44 | $ SINGULARITYENV_CUSTOM_RESULTS_DIR=/tmp/candy singularity run --app $APPNAME container.simg 45 | OR 46 | $ export SINGULARITYENV_CUSTOM_RESULTS_DIR=/tmp/candy 47 | $ singularity run .... 48 | 49 | #################################################################################### 50 | %environment 51 | ############ 52 | now=`date '+%Y_%m_%d'` 53 | 54 | APPNAME="namd-avx512" 55 | OUTPUT_DIR=${HOME}/${APPNAME} 56 | 57 | RESULTS="${APPNAME}_$now.results" 58 | CSV="${APPNAME}_$now.csv" 59 | SYSCONFIG="${APPNAME}_now.sysconfig" 60 | APPINFO="${APPNAME}_${now}.appinfo" 61 | 62 | WORKDIR="$SINGULARITY_ROOTFS/WORKSPACE" 63 | 64 | if [ -n "$CUSTOM_RESULTS_DIR" ]; then 65 | RESULTS_DIR=$CUSTOM_RESULTS_DIR 66 | else 67 | RESULTS_DIR=$OUTPUT_DIR 68 | fi 69 | 70 | export APPNAME RESULTS CSV SYSCONFIG APPINFO WORKDIR RESULTS_DIR 71 | ########################################################################### 72 | %apprun namd 73 | ########################################################################### 74 | 75 | echo > $RESULTS_DIR/$RESULTS 76 | 77 | if [ ! -x "$RESULTS_DIR" ]; then 78 | mkdir $RESULTS_DIR 79 | fi 80 | 81 | echo "Running the container on single node..." 82 | WORKDIR=$WORKDIR/$APPNAME 83 | cd $WORKDIR 84 | 85 | N_CORES=`grep processor /proc/cpuinfo | wc -l` 86 | H_CORES=`expr $N_CORES / 2` 87 | THREADS=`lscpu | grep Thread |awk '{print $4}'` 88 | 89 | # Standard APOA1 and STMV benchmarks using NPT, 1fs timestep, PME every 4 90 | # APOA1 and STMV (*_nptsr_cuda) with 2fs timestep configurations (NPT, PME every 2) 91 | 92 | for WORKLOAD in apoa1/*namd stmv/*namd 93 | do 94 | WL=$(basename "$WORKLOAD") 95 | log=${WL}_${N_CORES}_$now.log 96 | 97 | echo "./namd2 +p $N_CORES +setcpuaffinity $WORKLOAD > $RESULTS_DIR/${log} " 98 | ./namd2 +p $N_CORES +setcpuaffinity $WORKLOAD > $RESULTS_DIR/${log} 99 | echo "FOM for ${WL} in ns/days:" |tee -a $RESULTS_DIR/$RESULTS 100 | grep 'Info: Benchmark time:' $RESULTS_DIR/${log} | awk '{s+=log($8)}END{print 1/exp(s/NR)}' |tee -a $RESULTS_DIR/$RESULTS 101 | 102 | if [[ $WL == *"apoa1"* ]] && [[ $THREADS > 1 ]]; then 103 | log=${WL}_${H_CORES}_$now.log 104 | echo "./namd2 +p $H_CORES +setcpuaffinity $WORKLOAD > $RESULTS_DIR/${log} " 105 | ./namd2 +p $H_CORES +setcpuaffinity $WORKLOAD > $RESULTS_DIR/${log} 106 | echo "FOM for ${WL} in ns/days:" |tee -a $RESULTS_DIR/$RESULTS 107 | grep 'Info: Benchmark time:' $RESULTS_DIR/${log} | awk '{s+=log($8)}END{print 1/exp(s/NR)}' |tee -a $RESULTS_DIR/$RESULTS 108 | fi 109 | 110 | done 111 | 112 | 113 | echo "APOA1 workloads run with and without hyperthreads. The performance results would be the highest value. " 114 | echo "Results are in $RESULTS_DIR" 115 | 116 | ################# 117 | %apprun multinode 118 | ################# 119 | which mpirun 120 | 121 | export LD_LIBRARY_PATH=/.singularity.d/libs:$LD_LIBRARY_PATH 122 | 123 | if [ ! -x "$RESULTS_DIR" ]; then 124 | mkdir $RESULTS_DIR 125 | fi 126 | 127 | WORKDIR=$WORKDIR/$APPNAME 128 | cd $WORKDIR 129 | WORKLOAD=$1 130 | NUMNODES=$2 131 | PPN=$3 132 | NCORES=$4 133 | HT=$5 134 | 135 | if [ -z "$WORKLOAD" ] || [ -z "$NUMNODES" ] || [ -z "$PPN" ] || [ -z "$NCORES" ]; then 136 | echo " You didn't specify a workload, the numbers of nodes, the number of PPN or number of cores. Things won't work! 137 | Run: singularity help for runing instructions." 138 | exit; 139 | fi 140 | 141 | ppn=$(( $(($NCORES - $PPN)) / $PPN )) 142 | steps=$(( $NCORES/$PPN )) 143 | 144 | commap=0;k=1;m=0 145 | while [ $k -le $PPN ] 146 | do 147 | commap[$m]=$(($k*$steps-1)) 148 | k=$(($k+1)) 149 | m=$(($m+1)) 150 | done 151 | commapArgs=`echo $(printf "%d," "${commap[@]}")| sed 's/,$//'` 152 | 153 | #array lenght 154 | len=${#commap[*]} 155 | 156 | pemap=0;i=1;j=0 157 | for element in ${commap[@]} 158 | do 159 | j=$(( $element - 1 )) 160 | pemap[$i]=$j 161 | i=$(($i+1)) 162 | j=$(( $element + 1 )) 163 | pemap[$i]=$j 164 | i=$(($i+1)) 165 | done 166 | 167 | size=${#pemap[*]} 168 | if [ -z "$HT" ] || [ $HT != "ht" ]; then 169 | echo " The hyper threading argument is not "ht" or empty. Running without HT" 170 | echo "Run: singularity help for more information" 171 | 172 | pemapArgs=`echo $(printf "%d-%d," "${pemap[@]:0:size-1}")| sed 's/,$//'` 173 | else 174 | pemapArgs=`echo $(printf "%d-%d+$NCORES," "${pemap[@]:0:size-1}")| sed 's/,$//'` 175 | 176 | fi 177 | 178 | log=${RESULTS_DIR}/${WORKLOAD}-${NCORES}cores-${PPN}ppn-${NUMNODES}nodes-$HT 179 | echo "./namd2_mpi +ppn $ppn $WORKLOAD/$WORKLOAD.namd +pemap $pemapArgs +commap $commapArgs | tee $log" 180 | ./namd2_mpi +ppn $ppn $WORKLOAD/$WORKLOAD.namd +pemap $pemapArgs +commap $commapArgs >> $log 181 | 182 | ########################## 183 | %apprun multinodeResults 184 | ######################### 185 | rm -rf $RESULTS_DIR/$RESULTS 186 | 187 | for log in ${RESULTS_DIR}/*nodes* 188 | do 189 | fullfilename=${log} 190 | filename=$(basename "$fullfilename") 191 | printf "$filename: " |tee -a $RESULTS_DIR/$RESULTS; grep 'Info: Benchmark time:' $log | awk '{s+=log($8)}END{print 1/exp(s/NR)}'|tee -a ${RESULTS_DIR}/${RESULTS} 192 | echo |tee -a ${RESULTS_DIR}/${RESULTS} 193 | done 194 | 195 | echo "Logs are available in $RESULTS_DIR." 196 | echo "FOM is in ns/days. Higher is better. Choose the highest value for each workload accross all the runs." 197 | 198 | ################################################################################# 199 | %setup 200 | ################################################################################# 201 | 202 | #Create a working directory 203 | export WORKDIR="$SINGULARITY_ROOTFS/WORKSPACE" 204 | mkdir -p $WORKDIR 205 | 206 | APP="namd" 207 | BIN="${APP}-*" 208 | 209 | # Copy all the binaries and anything else needed to run your binaries 210 | cp -r $BIN $WORKDIR/ 211 | if test -f sysinfo.sh; then cp -r sysinfo.sh -P $WORKDIR/; fi 212 | if test -d help; then cp -r help/${APP}* -P $WORKDIR/; fi 213 | 214 | chmod -R 777 $WORKDIR/* 215 | 216 | exit 0 217 | 218 | 219 | ############################################### 220 | %apprun clean 221 | ############# 222 | echo "deleting files $LOG $SYSCONFIG from $RESULTS_DIR" 223 | rm -rf $RESULTS_DIR 224 | 225 | ############################################### 226 | %apprun multinodeHelp 227 | ##################### 228 | cd $WORKDIR/ 229 | cat help 230 | 231 | ############################################# 232 | %apprun sysinfo 233 | ############### 234 | echo "Getting system configuration" 235 | cd $WORKDIR 236 | ./sysinfo.sh > $RESULTS_DIR/$SYSCONFIG 237 | 238 | echo "The $SYSCONFIG is located at $RESULTS_DIR" 239 | 240 | ################################ 241 | %apprun appinfo 242 | ############### 243 | cd $WORKDIR/$APPNAME 244 | cat appinfo |tee $RESULTS_DIR/$APPINFO 245 | 246 | --------------------------------------------------------------------------------