GithubHelp home page GithubHelp logo

nekbench's Introduction

Hi there ๐Ÿ‘‹

nekbench's People

Contributors

kent0 avatar thilinarmtb avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

nekbench's Issues

Add pre-bench and post-bench scripts

Add pre-run and post-run scripts for machines so that user can set the environment before the benchmark and do other processing activities like plotting after the benchmarks. For a given machine, these can be stored in a folder under machines.

Allow users to store their default values in a configuration file.

For repeated use of NekBench, it becomes tedious to type out the command even with the added universal default values. The user should be able to assign variables in a file, let's say user.config, and NekBench will source that file before checking for required specification and running.

Remove redundant vars e.g., nb_lx1_set

Whether lx1 is set can be determined by inspecting nb_lx1_list. Currently, we are setting the flag when we alter the list, but after the user gets control of the configuration via a config file, they may not necessarily remember to set the flag. This is true for other flags. Therefore, we should remove the redundancies to reduce the risk of user error in the future.

Add a Clean option

I think a clean option that removes everything inside runs/ will be convenient.

Add an option to not run a test

The user may want to simply run a case with the specified values for the various options so that they can process the output (logfiles or fld files) themselves. We can add support for common use cases as we gain new users, but there should always be an option to just 'run'.

Add machine specific limits

Add machine specific limits (like queue limits) for each machine, so that the NekBench scripts will respect these limits when submitting jobs.

Default value for `nb_np_list` parameter.

PR #15 set the default value of nb_np_list to 1 if the user did not provide any.
One problem I see with that is the given case may not run with a single MPI rank.
May be a better way to do this may be to set a nb_np_list value depending on
the machine. We can move the definition of the variable to appropriate machine
file and set it accordingly. For example, for linux machine type this can be 4,
for cetus, this can be 64.

@kent0 : What do you think?

Variable substitution in SIZE fails.

Variable substitution in SIZE fails when the parameter is assigned an expression instead of a literal e.g., (lelt=4) is good, (lelt=lelg/lpmin+4) fails.

Cleanup jobscripts/submit.* file

Move machine specific calculations in jobscripts/submit.<machine> (submission files) to the machine
files: machines/<machine>.

Create a function to print output

This should support indentation levels;

command: print "Error: Nek5000 build failed" 0
output : Error: Nek5000 build failed
command: print "Error: Nek5000 build failed" 1
output :   Error: Nek5000 build failed
command: print "Error: Nek5000 build failed" 2
output :     Error: Nek5000 build failed

Change filename convention

I think it will be more consistent if the files adhered to the common filename convention e.g., instead of makenek.cetus, it should be cetus.makenek since makenek is the family of files and the name before the dot separator should be the unique identifier. This also has the effect of increasing user friendliness as they won't be required to type as much to edit a specific file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.