Skip to content

Proceedings 2020 ESPResSo meetings

Jean-Noël Grad edited this page Jul 20, 2021 · 1 revision

Proceedings of the 2020 ESPResSo meetings

2020-12-01

Proposed changes to the core

  • split forces from the Particle struct (#4016)
    • forces/torques are observables derived from the Particle state
    • can be store elsewhere, possibly in multiple places that are then combined with a reduction
    • helps with parallelization, e.g. shared memory parallelization on NUMA architectures
  • integrator per particle (#4015)
    • currently, cannot combine e.g. inertialess tracers with other types of virtual sites
    • currently, Verlet list update code is duplicated in all integrators
  • remove per-particle temperature (#4008)
    • not used for physics simulations

Meet the devs video conference calls

  • community calls once per month to meet with the user base and have discussions about the future of ESPResSo
  • this replaces sending a delegate on-site

WaLBerla integration

  • particle coupling with thermalization is still problematic
    • look for UB with UBSAN (the thermalized fluid is not deterministic)
  • EK needs to be added

Coding day

  • for participants already working physically at the ICP: possibility to meet in person in the CIP pool and seminar room
  • otherwise join remotely using Zoom via breakout rooms

2020-10-20

Fixing tutorial issues discovered during the school

  • address currently opened tickets (schlaicha, jngrad, pkreissl)
  • consider creating a tutorial for error analysis (Carl)
  • implement autocorrelation method in the Correlator framework
  • rename all tutorials, use abbreviations in CMake commands

Discuss aim/purpose of tutorials

  • ELC+ICC tutorial to replace the crystallization tutorial (areinauer)
  • split tutorial 04 into two LB and polymer tutorials (christophlohrmann)
  • tutorial 12: long runtime with electrostatics enabled, look for an analytical form for the curve

Removal of AMD GPU and Intel compiler support

  • ROCm packages are not stable enough and CI requires frequent troubleshooting
  • the Intel docker image has to be built manually, move MPICH to the Fedora image

2020-09-29

Summer school planning and tasks assignments

Zoom test with all tutors

  • Thu Oct 1 at 2pm

2020-09-15

Summer school

Recordings

  • Michael is ready
  • Peter and Rudolf are in progress
  • the ICP recording studio is ready (JN can help)
  • use ILIAS to host videos and the forum
  • e-learning material
    • after the school, host videos on a public platform at the discretion of speakers
    • consider recording a simple tutorial walkthrough (after the summer school)
  • write CI tests for URLs (JN)

Tutoring

  • group for US West Coast time zone
  • groups for beginners and advanced users
  • the tutor hosts a Zoom session on an ICP workstation with:
    • ESPResSo installed (Rudolf) and GPU + webcam + headset
    • using a special account with limited rights
    • give control to participants in turns
  • do a Zoom test with everyone 1 week before the summer school with tutorial 01 LJ (e.g. Sep 29 afternoon)
  • check default config for tutorials (JN)
  • look into ILIAS guest accounts (JN + Lars + Frank)

Talks

  • someone needs to moderate Q&A sessions (Rudolf: Mon+Tue+Wed, Alex: Thu, Christian: Fri)
  • scientific talks are live at 5 pm

2020-08-18

4.1.4 release

  • CPU LB thermalization bug (#3847)
  • only the thermalized fluid velocity was tested
  • thermalized stress fluctuations need to be tested (@pkreissl @RudolfWeeber)

Summer school

  • talk recordings:
    • slides in 16:9 format, logos only on first slide
    • record a sample lecture and write down instructions (@jngrad)
  • tutoring sessions:
    • teams of 5 sharing the same coding environment, participants take turns in writing code
    • tutors should communicate their availability to @RudolfWeeber
    • pairs of tutors should hide answer cells (instructions for hidden Jupyter cells available in #3249 (comment))
    • write down learning objectives for each tutorial
    • Visual Studio Code doesn't allow sharing Jupyter notebooks, they have to be converted to python scripts, plots are visible but not at the correct place

2020-07-28

Progress of summer school preparation

  • eScout HiWi to help with the videoconferencing system
  • record slides with video of the speaker
  • audio quality is more important than video quality
  • acquire a speaker headset
  • collaborative ESPResSo coding with Visual Studio code live share
    • host provides a Jupyter server
    • tested on Linux and Windows, check on a mac
    • the same Visual Studio code must be used on all clients (can be installed without root rights)

Feature control of Stokesian Dynamics

  • disable SD GPU test until the feature is fixed

Virtual coding day

  • at the end of August to update tutorials

2020-07-07

4.1.3 release

Sources of bugs in 4.1.2:

  • several python tests either did not run or the assertions statements were malformed
  • bugs in the script interface were not detected due to insufficient coverage, it's now 94% covered
  • OpenGL-related bugs cannot be detected in CI

Physics-related bugs are limited to LB boundaries, agrid calculation and shape distance calculations.

Planned 4.2.0 release

New features:

  • Brownian and Stokesian Dynamics
  • MD load balancing
  • probably Lees Edwards

Core changes:

  • ghost communication simplification
  • topology refactor: introduces overhead in NpT simulations

Summer school program and organization

  • we need shorter lectures and record them in advance, with good quality so we can re-use them
  • there should be a Q&A session after lectures to keep the school interactive
  • sort out this week the details of the lectures
  • we can get technical support from a HiWi for the videoconferencing
  • VS Code for a shared programming environment, could be used in 5-people teams, think of a different way of running the tutorials
  • limit capacity to 20 participants (4 teams of 5 people)

2020-06-18

ScaFaCoS MMM2D issue

  • MMM2D issue was reported on the ScaFaCoS project (scafacos/scafacos#28)
  • not directly comparable to ESPResSo ELC
  • MMM2D last maintained version is in ESPResSo 4.1
    • can be used as reference
    • no longer maintained

Stokesian status update

  • CMake logic is ready
  • GPU code compiles on NVCC, Clang, HIP
  • GPU tests fail CI (JN+Carl)
  • after tests are passing CI, Henri can move the project to a repository
  • lubrication correction will be implemented later

Summer school

  • CECAM cancelled all events until September
  • fully virtualizing the school:
    • server-based IPython notebooks (Carl)
    • participants need to work in small groups (BigBlueButton has breakout rooms, get professional advice)
    • Stuttgart students will be physically present (at the moment, only 10 people are allowed in the CIP pool)
    • pre-record the talks during the summer, including for external speakers (and scientific talks?)
    • we'll need twice more people for the tutorials
    • time zone issues?
    • update the CECAM page accordingly, explaining it'll be interactive, videos will be made publicly available (JN)
  • Christian won't be available during the school
  • 2021 call closes July 19 (JN)

NpT integrator

  • not well tested
  • code difficult to maintain
  • pressure calculation should re-use the pressure observable

WaLBerla

  • now running with more than 2 MPI ranks
  • engine code needs to be checked again (Christoph)
  • LB pressure (Ingo)
  • LB thermalization (Michael)
  • VTK output (JN) and checkpointing

2020-05-26

Bugfix release

  • ELC bugfix in #3731 needs to be backported to 4.1.3rc (@reinaual)

GPU support

  • mailing list survey: GPU is only used for LB and direct summation
    • LB: can be OpenMP-parallelized in walberla
    • direct summation: could be MPI-parallelized
  • 4.2.0 release: keep GPU support
  • 4.3.0 release: will use walberla, at which point GPU support can be re-assessed

CMake optional features

  • optional packages can be silently skipped if dependencies are not found when passing CMake flag -DWITH_OPTIONAL_FEATURE=ON
  • opt-in vs. opt-out vs. implementing (and maintaining) an ON/OFF/IF_AVAILABLE option macro in CMake
  • check for a mechanism in CMake to detect if the value of an option() was default-set or user-set (@jngrad)

User survey

  • mailing list is not optimal for surveys: too few people are subscribed, and not everyone might be reading it
  • reach out to users based on recent publications citing es (@jngrad + HiWi) and to former participants of the espresso school
  • get more people on the mailing list, e.g. by inviting people to subscribe with a message on the espresso download page and on the GitHub page (@jngrad)
  • get feedback from people who do not use espresso anymore

Summer school

  • postpone details to the next meeting

2020-05-05

Stokesian Dynamics integration

  • making SD an external library via e.g. a submodule
  • focus core team efforts on the interface with the library
  • lubrication still needs fixing, can be deferred for now

LB benchmarking and the future of CUDA in Espresso

  • cost of GPU infrastructure maintenance in continuous integration is high
  • GPU LB only brings a 2x to 3x speed-up over CPU LB
    • particle communication between CPU and GPU is the limiting factor
    • double precision has bad performance on most GPU hardware
    • single vs. double precision issues are visible e.g. in electrophoresis of a sphere, or with mass drift in long LB simulations
  • communicate these issues with the community and get an idea of how many people are actually using GPU acceleration (@RudolfWeeber)

Contribution guidelines and early decision making on contributions

  • update CONTRIBUTING.md (@RudolfWeeber)

Espresso summer school

  • do the school physically if international travel is allowed in October, otherwise virtualize the school
    • make decision in June
    • accept enrollments for now (@jngrad)

2020-04-14

CUDA 10.1 compatibility issues with Ubuntu 20.04 build environment

  • GCC 9.3 and Clang 9.0 (#3654)
    • in the Ubuntu 20.04 dockerfile, use the older compilers
  • boost 1.71 (#3650)
    • try older clang version (JN)
    • ship boost with espresso?
    • replace boost::mpi by HPX and other boost features by standard features?
  • thrust 1.9.3 (#3636):
    • either provide the patch (seems to already be in OSX)
    • or ship thrust 1.9.5 with espresso (look for compatibility table with cuda versions)

Stokesian Dynamics management by the core team

  • a few remaining tasks: documentation, RNG issue
  • document integration scheme
  • decide who reviews the PR

Observable refactor status

  • short term:
    • review observable edges (#3608, Rudolf)
    • refactor profile observables, if need be add unit tests (JN)
    • implement RDF as an observable (JN)
  • long term:
    • implement ParticleTraits (Kai)
    • use boost histograms instead of the custom code? requires boost 1.70

Status of waLBerla integration

  • shared pointers still cause double free (#2701)
    • Michael can have a look
  • seek to establish direct contact with the waLBerla team

2020-03-24

New observables framework

  • ParticleTrait-based observables (Kai+Flo)
  • PidProfileObservable<CoordSystem> Observables (JN)
  • ProfileObservable<ParticleTrait, CoordSystem> (JN)
  • histogram-based observables are slow (e.g. LB profiles)
  • add a method to return ProfileObservable axis ranges

Ongoing Analysis refactor

  • distance functions already moved into the System class (#3586)
  • convert RDF to a ProfileObservable (JN)

Thermostat correlation issue

  • two simulations with seeds 42 resp. 43 will be correlated with time lag 1 (#3585)
  • probably won't make it into 4.1.3, unless it's an easy backport

CI

  • retiring the clang:6.0 image that used Clang6, cuda 9.0 and Ubuntu16.04 (bee cluster was updated to CUDA 10.2)
  • 2nd step of increasing min req. boost version (to 1.65 from Ubuntu 18.04, #3093)
  • state of cuda images
    • cuda libraries don't match with the cuda docker base images, cuda:latest is the only version that might still work
    • use the Ubuntu packages libcudart10.1 and friends in the Ubuntu 20.04 image instead of relying on Nvidia docker images?

Cell system/Coldet

  • refactor the cell system (Flo, #3589)
    • simplify the Cell system interface
    • remove state tracking

Other

  • LB interpolation wrong near a boundary interface (Rudolf)

2020-01-21

Fixing the random P3M tuning failures in CI

  • Drude sample test fails CI (#3104), probably caused by an incorrect tuning of the r_cut parameter
    • prevent r_cut values inferior to LJ sigma with a user-supplied r_cut_min in the tuning function (@fweik, #3437)
  • P3M benchmark fails CI (#2924), the test was removed, cause is unclear

Planning tasks discussed in the summer school dev meeting

  • do core team weekly meetings on Monday at 1 pm
  • comment on dependencies between PRs, especially on docker (+request multiple reviews)
  • communicate the issues that prevent the merging of a PR (e.g. misuse of the interface)
  • experiment with releasing task schedules (@jngrad, @RudolfWeeber)

New numpy release cycle

Support for i586 architecture

  • tested in CI by Christoph Junghans
  • add -no-sse to the compiler flags on 32bit to simulate i586?
  • or drop i586 support since 32bit is no longer supported on Ubuntu 20.04

Coding day

  • semester ends on Feb 7, doodle for Feb 10-14
Clone this wiki locally