1*cb32e2e7SValeria Barra# Copyright (c) 2017-2018, Lawrence Livermore National Security, LLC. 2*cb32e2e7SValeria Barra# Produced at the Lawrence Livermore National Laboratory. LLNL-CODE-734707. 3*cb32e2e7SValeria Barra# All Rights reserved. See files LICENSE and NOTICE for details. 4*cb32e2e7SValeria Barra# 5*cb32e2e7SValeria Barra# This file is part of CEED, a collection of benchmarks, miniapps, software 6*cb32e2e7SValeria Barra# libraries and APIs for efficient high-order finite element and spectral 7*cb32e2e7SValeria Barra# element discretizations for exascale applications. For more information and 8*cb32e2e7SValeria Barra# source code availability see http://github.com/ceed. 9*cb32e2e7SValeria Barra# 10*cb32e2e7SValeria Barra# The CEED research is supported by the Exascale Computing Project 17-SC-20-SC, 11*cb32e2e7SValeria Barra# a collaborative effort of two U.S. Department of Energy organizations (Office 12*cb32e2e7SValeria Barra# of Science and the National Nuclear Security Administration) responsible for 13*cb32e2e7SValeria Barra# the planning and preparation of a capable exascale ecosystem, including 14*cb32e2e7SValeria Barra# software, applications, hardware, advanced system engineering and early 15*cb32e2e7SValeria Barra# testbed platforms, in support of the nation's exascale computing imperative. 16*cb32e2e7SValeria Barra 17*cb32e2e7SValeria Barra 18*cb32e2e7SValeria Barrafunction run_tests() 19*cb32e2e7SValeria Barra{ 20*cb32e2e7SValeria Barra $dry_run cd "$test_exe_dir" 21*cb32e2e7SValeria Barra 22*cb32e2e7SValeria Barra # Some of the available options are: 23*cb32e2e7SValeria Barra # -degree <1>: Polynomial degree of tensor product basis 24*cb32e2e7SValeria Barra # -qextra <2>: Number of extra quadrature points 25*cb32e2e7SValeria Barra # -ceed </cpu/self>: CEED resource specifier 26*cb32e2e7SValeria Barra # -local <1000>: Target number of locally (per rank) owned degrees of freedom 27*cb32e2e7SValeria Barra 28*cb32e2e7SValeria Barra # The variables 'max_dofs_node', and 'max_p' can be set on the command line 29*cb32e2e7SValeria Barra # invoking the 'benchmark.sh' script. 30*cb32e2e7SValeria Barra local ceed="${ceed:-/cpu/self}" 31*cb32e2e7SValeria Barra local common_args=(-ceed $ceed -pc_type none -benchmark) 32*cb32e2e7SValeria Barra local max_dofs_node_def=$((3*2**20)) 33*cb32e2e7SValeria Barra local max_dofs_node=${max_dofs_node:-$max_dofs_node_def} 34*cb32e2e7SValeria Barra local max_loc_dofs=$((max_dofs_node/num_proc_node)) 35*cb32e2e7SValeria Barra local max_p=${max_p:-8} 36*cb32e2e7SValeria Barra local sol_p= 37*cb32e2e7SValeria Barra for ((sol_p = 1; sol_p <= max_p; sol_p++)); do 38*cb32e2e7SValeria Barra local loc_el= 39*cb32e2e7SValeria Barra for ((loc_el = 1; loc_el*sol_p**3 <= max_loc_dofs; loc_el = 2*loc_el)); do 40*cb32e2e7SValeria Barra local loc_dofs=$((loc_el*sol_p**3)) 41*cb32e2e7SValeria Barra local all_args=("${common_args[@]}" -degree $sol_p -local $loc_dofs -problem $bp) 42*cb32e2e7SValeria Barra if [ -z "$dry_run" ]; then 43*cb32e2e7SValeria Barra echo 44*cb32e2e7SValeria Barra echo "Running test:" 45*cb32e2e7SValeria Barra quoted_echo $mpi_run ./petsc-bpsraw "${all_args[@]}" 46*cb32e2e7SValeria Barra $mpi_run ./petsc-bpsraw "${all_args[@]}" || \ 47*cb32e2e7SValeria Barra printf "\nError in the test, error code: $?\n\n" 48*cb32e2e7SValeria Barra else 49*cb32e2e7SValeria Barra $dry_run $mpi_run ./petsc-bpsraw "${all_args[@]}" 50*cb32e2e7SValeria Barra fi 51*cb32e2e7SValeria Barra done 52*cb32e2e7SValeria Barra done 53*cb32e2e7SValeria Barra} 54*cb32e2e7SValeria Barra 55*cb32e2e7SValeria Barratest_required_examples="petsc-bpsraw" 56