Skip to content

Proceedings 2022 ESPResSo meetings

Jean-Noël Grad edited this page Nov 22, 2022 · 11 revisions

Proceedings of the 2022 ESPResSo meetings

2022-11-22

Upcoming changes to ESPResSo

  • Open MPI processor binding bug in Ubuntu 22.04
  • 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 becomes cmake .. -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

Summer school feedback

  • 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)

2022-09-27

Summer school

  • 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

2022-09-06

Summer school

  • 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

Non-bonded interactions refactoring

  • 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

2022-07-26

Coding day

  • selected date: 23 August 2022

Plans to reduce usage of Cython

  • 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

Summer school organization

  • 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)

2022-06-14

4.2.0 release

  • 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

ESPResSo in the cloud

  • 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

2022-05-24

Planned features for the 4.3.0 release

  • 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.

Program of the 2023 summer school

  • 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

2022-05-03

Refactoring of electrostatics/magnetostatics methods

  • 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

Future of the mayavi visualizer

  • 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

Program of the 2022 summer school

  • 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

2022-04-12

ESPResSo 4.2.0 release

  • 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

Lees-Edwards

  • 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)

Program of the 2022 summer school

  • new lecture: Lees-Edwards
  • hybrid event with 1 online tutorial group in the morning

Program of the 2023 summer school

  • energy materials, multiscale simulations

Tag der Wissenschaft

  • polymer with MIDI board
  • billiards game
  • chamber game (entropy)
  • PyStar for the GUI

2022-02-08

Refactoring actors as ScriptInterface classes

  • 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)

Coding day progress report

  • 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

2022-01-18

Format of the 2022 school

  • 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

Coding day

  • Friday, February 4th

Re-organization of the particle storage

  • rework particle storage such that "hot" properties are stored in a cache line
  • Rudolf worked on a prototype with different particle types:
    1. current Particle struct from ESPResSo 4.2-dev (poor performance)
    2. flat particle struct with reordered properties to optimize padding (better performance)
    3. particle-pool where the particle only has an index to a struct-of-arrays (SoA) structure (best performance)
  • 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

Lees-Edwards

  • now correctly implemented in waLBerla
  • next step is to integrate it in the ESPResSo waLBerla bridge
Clone this wiki locally