BLonD code development meeting

→ Europe/Zurich
CERN

CERN

Video conferencing only

News

  • Discussion forum to be created on the new website to allow for questions on BLonD usage

Ring object common implementation

Alex

  • Pass a programme: 3 options
    • label via keyword argument
    • allow also other types? time, data
  • Several sections
    • Section lengths as list
    • Synchronous data as ring_program(data1, data2, …) for instance
    • User should be able to define different momentum arrays per section; possibility to generate programmes if all sections are the same
  • ring_program(): should the pre-treatment be a generic data treatment? or use

Simon

  • Reminder of numpy array functionalities
    • subclass of numpy arrays
    • interpolation
  • Ring parameters:
    • have same length
    • pre-processed to define the number of turns
    • convert between energy/momentum etc
  • RF parameters:
    • different time arrays for different voltages
    • reshaped after momentum pre-processing done
  • Discussion: should the input be uniform and particular operations be done upon assignment? -> Majority prefers the data input to be the same independent of the input data type
  • Momentum vs momentum compaction: should the two be separated?
  • Built-in functions:
    • pre-processing requires knowledge of data structure
    • tagging or not?

Discussion:

  • Alex: supports datatype, with class name
    • role of Ring/RF object to shape and combine different data types
  • Helga: can we find a compromise? Not excluding each other e.g. use generic data types and Ring/RF definitions for tracking; for pre-treating different programmes, use specific data types as alpha, voltage etc.
  • Can we all experiment with the dataTypes for next time? Heiko: can we collapse the remaining options?

FOR NEXT TIME, EVERYBODY: experiment with a generic data type and specific subtypes; try to break the implementation and bring up questions

Panagiotis: FFTs on GPUs

  • RFFT and iRFFT functions tested
  • As the size of the problem increases, the speed-up improves; for 1 M data points, up to 50-60x
    • Sampling sizes tried: output_size = 1/2, 1, 3/2 x input_size
  • Full tracking EX1 (kick, drift, slice) in GPU
    • voltage*charge, omega_rf, and phi_rf only transferred if changed by host
    • slice requires transfer of macro particles to CPU for fitting
    • with fitting, speed-up very small, 1.5-2x
    • without fitting, up to 16x speed up for 16 M particles
  • Kostis: could we see the CPU/GPU breakdown to see whether time is consumed in transfer or function itself
  • Alex: can we make a GPU implementation of RMS and FWHM?
  • Full tracking EX2 (total induced voltage, kick, drift, slice) in GPU
    • with induced voltage and inductive_impedance <- uses derivative, which is not fully implemented in GPU => some transfer required for now between CPU/GPU, but will be avoided in the future
    • speed-up of 5-8x, even with transfer
  • Helga: use more “real-life” examples (PS, SPS, LHC) for next time

 

There are minutes attached to this event. Show them.
    • 10:30 → 10:40
      News 10m
      Speakers: Aaron Farricker (CERN), Alexandre Lasheen (CERN), Giulia Papotti (CERN), Heiko Damerau (CERN), Ivan Karpov (CERN), Konstantinos Iliakis (CERN), Luis Eduardo Medina Medrano (CERN), Markus Schwarz (KIT), Panagiotis Tsapatsaris (NTUA), Simon Albright (CERN), Theodoros Argyropoulos (CERN)
    • 10:40 → 11:20
      BLonD common 40m

      Ring object definition

      Speakers: Alexandre Lasheen (CERN), Markus Schwarz (KIT), Simon Albright (CERN)
    • 11:00 → 11:20
      MPI and GPU development 20m
      Speakers: Konstantinos Iliakis (CERN), Panagiotis Tsapatsaris (NTUA)