PyHEADTAIL Meeting #26

Europe/Zurich
6/2-004 (CERN)

6/2-004

CERN

40
Show room on map
Kevin Shing Bruce Li (CERN)

Adrian, Kevin, Hannes, Gianni, Lotta, Carlo, Eirini, Giovanni, Elias,

  • GPU integration for PyHEADTAIL - basics:
    • We have a dedicated GPU machine on the CNAF Cluster with a dedicated queue; Adrian says that this has already been tested and he is running simulations on there 
    • Adrian explains the observed speed-ups obtained with PyHEADTAIL for the GPUs; he stresses that PyHEADTAIL has not been optimized for the GPU. Adrian has two options for improving this in the future.
    • Adrian shows the implications the GPU has for a user. Kevin asks why the GPU swallows a bunch; Adrian says that this highlights that the bunch is copied to the GPU. if a user does not have a GPU, he will be notified accordingly.
    • Adrian shows the different implementations for space charge. Giovanni mentioned that in principle the beta function should be taken into account for the full 3d space charge PIC; Kevin remarked that this would in particular be important for long bunches. He wondered whether the 
    • Hannes asked about the grid - whether this would be updated dynamically; Adrian said that one can update the grid at any time during the simulation. Hannes also asked about the term dynamic aperture; Adrian remarked that what was meant was more a kind of adaptive grid sizing.
    • Adrian went through the different modules and where what is implemented. Feedback has been implemented on what is on the master branch. Jani's module has not been ported as it was recently finished.
    • Gianni asked whether this list given and indication on whether the bunch ever leaves the GPU or not. Adrian said he would come back to this - see context management below.
  • PyPIC - part:
    • Adrian has implemented PyPIClib. Kevin asked whether we would need to merge PyPIC and PyPIClib? Adrian says that this is not necessary. It is fully compatible with PyPIC and PyHEADTAIL just enforces an interface from a PyPIC object. ACTION: to look at PyPIC and clean it up (Adrian, Gianni, Lotta, Kevin).
  • Context management
    • Adrian has prepared a demo Jupyter Notebook to work on together with NVIDIA. Here he explains the functioning of the context manager. The notebook explains in a live dome form the internals of the context management. It can be found under:
    • Michele asks whether the memory will always remain on the GPU or whether it will move back and forth; Adrian says it will stay on the GPU as long as it is on the GPU context.
    • Enter and exit of the context management needs to be implemented for different source and target "architectures".
  • MPI + GPU is feasible:
    • Infrastructure exists - Adrian provided the link to look into this.
  • Questions:
    • Gianni asks whether space charge lives in the context manager - Adrian says that this all on the GPU. PyHEADTAIL does not have a CPU PIC solver implemented via PyPIC.
There are minutes attached to this event. Show them.
    • 13:45 13:55
      Matters arising 10m
      Speaker: Kevin Shing Bruce Li (CERN)
    • 13:55 14:25
      GPU integration in PyHEADTAIL 30m
      • Which parts are on the GPU?
      • Which parts are on the GPU, exclusively?
      • How is the coherence with PyPIC? Is the GPU version integrated or co-existing?
      • How does the context manager work; brief explanation of the architecture; what do we need to know as developers?
      • Outlook on possible ways to combine GPU and MPI
      Speaker: Adrian Oeftiger (CERN)
    • 14:25 14:35
      General updates and round table 10m
      Speaker: all
    • 14:35 14:45
      AOB 10m
      Speaker: Kevin Shing Bruce Li (CERN)