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