LLNL/Quicksilver

Name: Quicksilver

Owner: Lawrence Livermore National Laboratory

Description: A proxy app for the Monte Carlo Transport Code, Mercury. LLNL-CODE-684037

Created: 2017-10-31 23:08:38.0

Updated: 2018-03-19 20:39:23.0

Pushed: 2018-03-19 20:39:22.0

Homepage: null

Size: 202

Language: C++

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Quicksilver

Introduction

Quicksilver is a proxy application that represents some elements of the Mercury workload by solving a simpli?ed dynamic monte carlo particle transport problem. Quicksilver attempts to replicate the memory access patterns, communication patterns, and the branching or divergence of Mercury for problems using multigroup cross sections. OpenMP and MPI are used for parallelization. A GPU version is available.

Performance of Quicksilver is likely to be dominated by latency bound table look-ups, a highly branchy/divergent code path, and poor vectorization potential.

For more information, visit the LLNL co-design pages.

Building Quicksilver

Instructions to build Quicksilver can be found in the Makefile. Quicksilver is a relatively easy to build code with no external dependencies (except MPI and OpenMP). You should be able to build Quicksilver on nearly any system by customizing the values of only four variables in the Makefile:

Sample definitions for a number of common systems are provided.

Quicksilver recognizes a number of pre-processor macros that enable or disable various code features such as MPI, OpenMP, etc. These are described in the Makefile.

Running Quicksilver

Quicksilver?s behavior is controlled by a combination of command line options and an input file. All of the parameters that can be set on the command line can also be set in the input file. The input file values will override the command line. Run $ qs ?h to see documentation on the available command line switches. Documentation of the input file parameters is in preparation.

Quicksilver also has the property that the output of every run is a valid input file. Hence you can repeat any run for which you have the output file by using that output as an input file.

License and Distribution Information

Quicksilver is available on github

Quicksilver is open source software with a BSD license. See LICENSE.md

This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract DE-AC52-07NA27344.

LLNL-CODE-684037


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.