-
Notifications
You must be signed in to change notification settings - Fork 188
Proceedings 2022 ESPResSo meetings
Jean-Noël Grad edited this page Nov 22, 2022
·
11 revisions
- Open MPI processor binding bug in Ubuntu 22.04
- FAQ section: Import errors due to Open MPI processor affinity bug
- upstream ticket: open-mpi/ompi#11097
- only affects singleton mode, i.e.
./pypresso script.py
is affected butmpiexec -n 1 ./pypresso script.py
isn't - ICP workstations now use the
l3cache
binding policy
- GPU support for ESPResSo from CUDA 11.0 onward
- ESPResSo will soon migrate to C++17, which is not supported by CUDA 10
- CUDA 11.0 will soon be required for GPU support; CUDA 11.5 or later is strongly recommended
- to continue using older GPUs, e.g. on the bee cluster, use ESPResSo 4.2.0 which still supports CUDA 10
- new CMake configuration for ESPResSo
- ESPResSo will soon change its build system to disambiguate ESPResSo build options from walberla/kdpart/stokesian build options
- example:
cmake .. -D WITH_CUDA=ON
becomescmake .. -D ESPRESSO_BUILD_WITH_CUDA=ON
for all external features - the new names will be documented in the user guide, section 2.4.4. Options and Variables
- 4.2.1 bugfix release
- low turnout (6 on-site participants from outside the ICP), even though this school was focused on on-site participation (poster session with lightning talk, all online registrations from European participants were followed up by a request to participate on-site)
- for next time:
- make certificate of attendance conditional on filling out the satisfaction survey
- mention the lightning talk in the program in a self-contained sentence (double-check with Keerthi)
- send invitation to research groups
- do an ESPResSo install party before the event starts
- the pystencils and lbmpy tutorials need to be improved with links to the documentation (invite them to a coding day)
- changes to the program
- Monday: charged matter lecture, salt solution Widom insertion tutorial (PR #4546, @David), Lennard-Jones + RDF tutorial
- Tuesday: polymers and charged polymers lecture, LB tutorial on sedimentation (PR #4570, @Patrick, @JN), polymer tutorial on radius of gyration with and without charges (@Mariano, skip diffusion and hydrodynamics)
- Wednesday: discuss content with Markus (@Rudolf)
- Thursday: move dev meeting to 16:00 and post agenda to the mailing list
- Alex S and Christian will be on a meeting from Tuesday noon to Thursday noon
- only need two tutors per day: one for onsite tutorials and one for online tutorials
- in case of emergency, JN, Rudolf and Julian can act as replacements
- online tutorials: VS Code (if this works) or Zoom
- LB sedimentation tutorial: simulation script ready, works for a 2D system
- new interface doesn't introduce silent API changes (#4558)
- unused/untested/undocumented
is_active()
methods will be removed -
validate_params()
methods will be fixed (currently they aren't called and some are broken) - introduce a way to deactivate potentials
- selected date: 23 August 2022
- tracking ticket and detailed explanations: #4542
- Cython 3.0 comes with major API changes that are likely to impact ESPResSo
- 2/3 of the Cython code in ESPResSo was replaced by Python code (latest changes: #4541)
- migrating to Python helps us replace our custom
MpiCallbacks
framework by standard MPI and HPX code - todo: thermostats and non-bonded interactions
- put more emphasis on onsite participation
- tutorials to draft: LB particle sedimentation (@Patrick), look into Widom+electrostatics (@David)
- tutors needed for: LJ, charged matter (charged rod, maybe Widom), active matter, LB (Poiseuille flow, sedimentation)
- Christoph: no issue with swimmers
- Alex: 4.1 P3M cell system bug still present
- Mariano: cluster analysis gives the same results as in 4.1
- Ingo: minor issues in ekin user guide / tutorial, collision detectiion discrepancies in the user guide regarding virtual sites
- Julian: OpenGL is ok
- David: in progress
- Binder
- run an interactive Jupyter session in the cloud with ESPResSo already set up (direct link)
- limitations: 1 CPU core, ~2 GB of RAM, python kernel stops after 10 min of inactivity, jupyter session disconnects after 30 min of inactivity
- for details, see
jngrad/espresso-binder
- multiple people can join the same JupyterLab session, but cannot edit the same file at the same time
- there is a real-time collaborating feature (documentation), but requires Node.js
- GitPod
- run a shell in the cloud that provides a build environment to compile ESPResSo
- limitations: 50 hours/month, disconnected after 30 min of inactivity
- can connect to VisualStudio Code for either developing code or running Jupyter notebooks
- VisualStudio Code has a real-time collaborating feature built-in
- summer school
- until now, Zoom with screen sharing and remote control was used for the online tutorials, which is not ideal:
- consumes a lot of bandwidth, which is an issue for users who has a slow connection
- keyboard shortcuts and mouse scrolling are sometimes broken on mac and iPad devices
- need to investigate Binder, GitPod or VSCode as a replacement
- until now, Zoom with screen sharing and remote control was used for the online tutorials, which is not ideal:
- reaction methods
- more efficient MD/MC coupling is needed
- checkpointing (roadmap in #4154)
- converting Gibbs ensemble to C++ probably not necessary, unless it can benefit from parallelization
- packaging for pip: the Boost MPI and CUDA dependencies may be an issue
- auto-update accumulators with error analysis
- the Boost Statistical Accumulators Library currently only supports uncorrelated samples
- statistical tools for correlated time series (binning analysis, jackknife, etc.) require visual inspection
- it is safer to write the observable as a time series to disk and do the error analysis separately
- modular FFT implementation
- allows using high-performance FFT libraries that support OpenMP
- particle storage rewrite
- separate forces/torques from the particle struct for more efficient integration loop
- system propagation rewrite
- propagation scheme stored on the particle (#4259)
- offers more flexibility for rigid bodies, virtual sites and particles coupled to a lattice-Boltzmann fluid
- multi-system simulations
- almost all global variables have been removed in 4.2.0 (#2628)
- currently remaining globals: box geometry, cell structure, thermostats, Verlet skin, time step, simulation time, CUDA device memory pointers, etc.
- main topic: energy materials
- topics for lectures: electrokinetics, catalysis, electrostatics in slab geometries, grand canonical ensemble with potential
- topics for tutorials: 2D electrostatics (ELCIC), fluctuating electrokinetics
- proposal submission deadline: 17 July 2022
- replace Cython interface by a Python interface with C++ script interface
- P3M on GPU now implements energies by re-using the CPU kernel
- P3M on GPU is now compatible with ELC
- CPU methods no longer rely on global variables
- issues with ELC energies in Grand canonical ensemble w/ contrasts
- not actively maintained, is missing several components (e.g. shaped-based constraints)
- installation: dependency tree is broken on ICP workstations
- no known users at the ICP
- CECAM page: Simulating the dynamics of soft matter with ESPResSo, PyStencils and LbmPy, October 10, 2022 - October 14, 2022
- planned content, pending approval from speakers:
- external lectures: lbmpy/pystencils (Markus Holzer), lattice-Boltzmann (Timm Krüger), Lees-Edwards (Sebastian Bindgen), charged polymers (Peter Košovan)
- internal lectures: active matter (Christoph Lohrmann), charged systems (Alex Schlaich), polymer electrophoresis or translocation in nanopores (Christian Holm), basic error estimation in observables and time series (Jean-Noël Grad), data management intro lecture + exercise with e.g. pandas (Rudolf Weeber)
- scientific talks: Ulf Schiller, Andreas Hartel, Sabine Klapp
- all features need to be checked after the feature freeze
- port 4.1 scripts to 4.2 to check for regressions
- send feedback to the core team
- assignments
- Christoph: GPU LB and swimmers
- Patrick: magnetization curves
- Alex: electrostatics
- Ingo: EK, collision detection
- Mariano: cluster analysis (script from Sebastian)
- David: reaction methods
- Julian: OpenGL
- particle LEbc in 4.2.0
- fluid LEbc in 4.3.0
- shear profile needs to be checked against analytical solutions for special cases (e.g. polymers)
- new lecture: Lees-Edwards
- hybrid event with 1 online tutorial group in the morning
- energy materials, multiscale simulations
- polymer with MIDI board
- billiards game
- chamber game (entropy)
- PyStar for the GUI
- required to remove global variables in the core
- required to replace Cython files by Python files
- progress:
- reaction ensemble: 90% completed (Pablo, JN)
- magnetostatics: 80% completed (JN)
- electrostatics: just started (JN)
- lattice-Boltzmann: 100% complete in the walberla branch (Rudolf, JN)
- electrokinetics: python interface in progress (Alex)
- DomainDecomposition renamed to RegularDecomposition
- Particle property getters implementation (ready for review)
- pre-requisite for octree decomposition (MD load balancing)
- walberla progress
- GPU kernels implemented, macroscopic value accessors still missing
- Lees-Edwards prototype mostly complete in the walberla bridge, next steps:
- merge the MD part of Lees-Edwards into the python branch
- then merge LB part of Lees-Edwards in the walberla branch
- electrokinetics: reaction kernels to be implemented
- current plan is to hold the event onsite
- postpone decision on alternative formats (online or hybrid)
- if onsite: allow for small? online group for participants from further away (6-7 persons per tutor)
- maybe make one "beginners"-group
- maybe two different groups with different levels
- formulation on what we expect from the "expert" level
- Friday, February 4th
- rework particle storage such that "hot" properties are stored in a cache line
- Rudolf worked on a prototype with different particle types:
- current
Particle
struct from ESPResSo 4.2-dev (poor performance) - flat particle struct with reordered properties to optimize padding (better performance)
- particle-pool where the particle only has an index to a struct-of-arrays (SoA) structure (best performance)
- current
- next step: start with abstracting particle-property access (should be done anyhow)
- Rudolf will continue to tinker -> Cell-system resorts need to be reflected in the SoA
- now correctly implemented in waLBerla
- next step is to integrate it in the ESPResSo waLBerla bridge