Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge development into HarrisSheetinX 2022-10-03 #116

Open
wants to merge 43 commits into
base: HarrisSheetinX
Choose a base branch
from

Conversation

hklion
Copy link

@hklion hklion commented Oct 3, 2022

No description provided.

ElisaRheaume and others added 30 commits September 9, 2022 20:51
rocFFT in ROCm 5.1+ tries to [write to a cache](https://rocfft.readthedocs.io/en/latest/library.html#runtime-compilation) in the home area by default. This does not scale.
* Split ApplyFilterandSumBoundaryJ

* Fix Bug

* Fix Bug

* Fix CI

* Pass Correct Periodicity to SumBoundaryJ

* Use ApplyFilterJ and SumBoundaryJ w/ MR

* Fix Bug (duplicate loops over dimensions)

* Use ApplyFilterJ and SumBoundaryJ w/ MR

* Clean up Variable Names in ApplyFilterJ

* Increase Guard Cells of All MultiFabs, Not Only J

* Reset CI Checksums
Use the newest available ROCm and CCE modules.
Document BLAS++/LAPACK++ usage with HIP on OLCF Crusher.
Move the helper to write a file for used inputs to ABLASTR.
This include into WarpX should not be here and is unused.
From Steve Abbott (HPE):
> There's a known problem with the default libfabrics memory
> registration cache monitor that impacts codes that allocate and
> free MPI buffers frequently. What you're doing now,
> FI_MR_CACHE_MAX_COUNT=0 is a big hammer that disables the memory
> registration cache all together. That can have a negative
> performance impact, because memory registration is a heavy
> operation, but it doesn't seem to be hitting WarpX very hard. If
> you're mostly following an allocate-communicate-free pattern, the
> memory registration cache won't help you anyway.
>
> An alternative is to set FI_MR_CACHE_MONITOR=memhooks , which uses
> an alternative cache monitor that doesn't have the same problem. I
> tested on an 8 node WarpX case we have in a bug and only saw a 2%
> speedup over FI_MR_CACHE_MAX_COUNT=0, and that speedup was in
> FillBoundary which I'm guessing is the only place you might have
> some MPI buffer reuse. If you start to scale out you may want to
> try it.
>
> We're working on a new default cache monitor that won't have this
> problem but I'm not sure the timeline for it. We'll make sure that
> when it gets pushed out we'll let you know, but for now you have to
> keep using either of these two environment variables.
* Use gemm on GPU for Hankel transform

* Add stream synchronization

* Add `amrex`

* blas::gemm call: add `queue` with device id

* CMake: BLAS++ Missing Deps

* Update installation instructions for Summit

* CMake: BLAS++ should not need curand

* Add paths to blaspp/lapackpp

* Move Queue Constructor to Constructor

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Correct name of profiled area

* Use gemm for inverse Hankel transform

* Add missing comma

* Clean up the code so that it compiles for CPU

* Clean up code ; update documentation

* Update Comment

Co-authored-by: Remi Lehe <[email protected]>

* Update Tools/machines/summit-olcf/summit_warpx.profile.example

Co-authored-by: Axel Huebl <[email protected]>

* Add stream synchronization

* Switch to streamsynchronize

* Update comments

Co-authored-by: Axel Huebl <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Update highlights with new PRX paper

* Update Docs/source/highlights.rst
* ABLASTR: Constants

Add a new header for constants to ABLASTR. Move over constants
from WarpX as its content.

* Cleanup: Use amrex::Real Literals

* Add Conversion: ElectronVolts

Conversions for energy, momentum and mass
This include into WarpX should not be here and is unused.
Same as ECP-WarpX#3393.
* display WarpX ascii art

* fix bug

* function is now noexcept

* fix bug

* fixed bug
* improve documentation for numerical constants
* add Antonin Sainte-Marie's suggestion for a docstring
* Update tau (from PR review)
Add Marco to our Zenodo file.
* Add beta function to BeamRelevant

* Beta-function: add user docs
* Add particle rotation in NuclearFusionFunc.H

* Minor

* indent

* initial work

* fixed bugs and added species

* update documentation

* delete unused file

* Add properties for neutron, hydrogen isotopes, helium isotopes

* Update code to be more consistent

* Correct typo

* Parse deuterium-tritium fusion

* Start putting in place the files for deuterium-tritium

* Update documentation

* Prepare structures for deuterium tritium

* Fix typo

* Fix compilation

* Add neutron

* Add correct formula for the cross-section

* Correct compilation error

* Fix nuclear fusion

* Reset benchmarks

* Prepare creation functor for 2-product fusion

* First implementation of momentum initialization

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Use utility function for fusion

* Minor modification of variable names

* Fix GPU compilation

* Fix single precision compilation

* Update types

* Use util function in P-B fusion

* Correct compilation errors

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Correct errors

* Update values of mass and charge

* Correct compilation error

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Correct compilation error

* Correct compilation error

* Correct compilation error

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Reset benchmark

* Use helium particle in proton-boron, to avoid resetting benchmark

* Fixed proton-boron test

* Revert "Fixed proton-boron test"

This reverts commit 73c8d9d.

* Incorporate Neil's recommendations

* Reset benchmarks

* Correct compilation errors

* Add new deuterium tritium automated test

* Correct formula of cross-section

* Correct cross-section

* Improve analysis script

* Add test of energy conservation

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add test of conservation of momentum

* Progress in analysis script

* Fix error in the initial energy of the deuterium particles

* Add check of isotropy

* Clean up the test script

* Rewrite p_sq formula in a way to avoids machine-precision negative numbers

* Add checksum

* Clean up code

* Add test for fusion in RZ geometry

* Update code to take into account actual timestep

* Update RZ test

* Update RZ test

* Increase number of particles

* Impart radial memory on DT particles

* Correct RZ momenta

* Remove unused file

* Update test

* Fix definition of theta

* Add new test

* Add checksum

* Update test

* Update tests

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fix Python analysis script

* Remove CPU and ID from new benchmark

Co-authored-by: Yinjian Zhao <[email protected]>
Co-authored-by: Luca Fedeli <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Rename PsatdAlgorithm as PsatdAlgorithmJConstantInTime

* Add New Inputs: psatd.J_in_time, psatd.rho_in_time

* Update PSATD Classes

* Fix Bug for FDTD Build

* Fix Warning for RZ PSATD Build

* Fix Multi-J Loop w/ J Constant in Time

* Clean up

* Fix Error Message

* Fix Time of Charge Deposition for Rho Linear

* Add 3D Langmuir CI Tests w/ Multi-J Algo

* Fix Checksums of New CI Tests

* Remove Extra CI Tests (added in ECP-WarpX#3363)

* Fix CI Tests w/ Multi-J PSATD

* Add Docs for New Input Parameters

* Galilean/Comoving PSATD Not Compatible w/ J Linear
* Add option to deposit laser on main grid

* Use `deposit_on_main_grid`

* Update Source/Particles/LaserParticleContainer.cpp

* Add documentation

* Update documentation
* CI: Test New BTD in `BTD_ReducedSliceDiag`

* Compare Legacy BTD vs. New BTD

* Fix Bug in Loading of openPMD Array Data

* Fix CI Analysis
* BTD diagnostics specified by intervals

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* address CI errors

* refactor and test

* no duplicate or out-of-order snapshots

* update documentation and tests

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* clean for CI

* still fighting CI

* Update Source/Diagnostics/BTDiagnostics.cpp

Co-authored-by: Axel Huebl <[email protected]>

* Apply suggestions from code review

Co-authored-by: Axel Huebl <[email protected]>

* refactor includes

* add an explicit constexpr

* Apply suggestions from code review

Co-authored-by: Edoardo Zoni <[email protected]>

* describe algorithm for BTD intervals list

* revert to old description of num_snapshots_lab

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* preserve behavior of num_snapshots_lab

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Axel Huebl <[email protected]>
Co-authored-by: Edoardo Zoni <[email protected]>
lucafedeli88 and others added 13 commits September 26, 2022 17:10
* AMReX: Weekly Update

* Roundoff Domain: Reset Checksums:

- [x] 2D: `background_mcc_dp_psp`
- [x] 3D: `pml_psatd_dive_divb_cleaning`
- [x] SP: `reduced_diags_single_precision`

* AMReX: Weekly Update

Fix ECP-WarpX#3429
…X#3421)

* add 1d support to _libwarpx.py functions `get_particle_X`

* add coverage of 1d `_libwarpx.get_particle_z` to test suite
The quiet option drastically reduces the in-cell output of package
installation with mamba but does not completely silence.
* Added tridiag solve for 1D

* Added tridiag solver to WarpX.H

* Updated PICMI_inputs_1d.py to use float64

This was done so that it will compare to the tridiag to machine
precision

* Updated 1D capacitive_discharge test, adding pythonsolver flag

* Update capacitive_discharge analysis_1d.py file with updated reference data

* Add periodic boundary conditions, plus other fixes

* Added CI test Python_background_mcc_1d_tridiag

* Fix for parallel

* Fixed CI test file prefix for PICMI_inputs_1d.py

* Fixed comments
* Docs: BELLA MVA PoP Published

Update the science hightlights with the final, published paper.

* Levy et al. PRAB published, too
The HDF5 1.10.4 module on Lassen (LLNL) has severe performance
issues. We saw that 1.10.5+ fixed those.

We now have a new module, 1.12.2, that we can use.
* Include WarpX specific documentation

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Undo the precommit change of import in __init__.py

* Docs: Install Pure Python WarpX PICMI

Allows to use these classes in our Sphinx autodocs in the manual.

* Sphinx: Add Napoleon Extension

https://sphinxcontrib-napoleon.readthedocs.io

* PICMI Doc Strings: Fix Some Warnings

* Removed the DocumentedMetaClass since it was moved to picmistandard

* Defined the languate in Docs/source/conf.py

* Cleaned up minor issues in the rst files

* Updated existing doc strings in picmi.py

* Reformatted doc strings in Regression/Checksum/checksumAPI.py

* Reformatted doc strings in Regression/Checksum

* First set of WarpX specific documentation

* Updated to picmistandard version 0.0.20

* Cleaned up the Python document page

Fixed up the text to be more clear.
Added section headers for each picmi class (for easy reference).

* Further updates to picmi.py doc strings

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Axel Huebl <[email protected]>
* Use parser for input parameters of type long

* Revert "Use parser for input parameters of type long"

This reverts commit 9573bb3.

* Use parser for inputs of type long

* add safeCasttoLong function

* Fix typo in comment
* AMReX: Weekly Update

One commit after 22.10 release, to fix oneAPI DPC++ 2022.02:
22.10-1-g13aa4df0f5

* PICSAR: 22.10

* WarpX: 22.10
* Doc: Dev FAQ Pinned Memory

Since I spoke to two devs in 24hrs about the topic, let us document
it.

Co-authored-by: Ryan Sandberg <[email protected]>
Co-authored-by: David Grote <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.