GPGPU Computing

In case you have never hear about this, GPGPU Computing is the use of graphics processing units (typical gaming graphic cards) as accelerators for general purpose computations. For example, in simulation of physical systems. Well, I’m deep in the middle of that mess.

I’m a co-founder member of the GPGPU@CAB Computing Group and former member of GPGPU@FaMAF. I’ve participated as speaker and organizer in the First Argentinean School on GPGPU Computing for Scientific Applications 2011 (FaMAF-UNC) and on the teaching team of the course Introduction to Numerical Calculus on Processing Graphics Units 2012 (IB-UNCUYO Bariloche).

My GPGPU Activity 

Here is a list of the GPGPU programming projects were I’ve got involved so far. Some of them are publicly available at my Bitbucket page. Forks and pull requests are welcome!

0) Ferromagnetic 2D q-state Potts model
Parallelization strategy: chequerboard approach
Language: CUDA C
Libraries & Tools: MWC RNG
Published?: yes, https://bitbucket.org/ezeferrero/potts
Collaborators: J.P. De Francesco, N. Wolovick, S. Cannas

1) 2D q-state Potts glass
Parallelization strategy: chequerboard approach
Language: CUDA C
Libraries & Tools: MWC RNG
Published?: yes, https://bitbucket.org/ezeferrero/potts-glass
Collaborators: S. Bustingorry, P. Gleiser, F. Roma

2) Quenched Edwards-Wilkinson elastic line
Parallelization strategy: embarrassing parallel
Language: CUDA C, C++
Libraries & Tools: Thrust, cuFFT, MWC RNG, PHILOX RNG
Published?: yes, https://bitbucket.org/ezeferrero/qew
Collaborators: S. Bustingorry, A. Kolton

3) Disordered scalar Phi4 model with local interactions
Parallelization strategy: embarrassing parallel
Language: CUDA C, C++
Libraries & Tools: Thrust, cuFFT, MWC RNG, PHILOX RNG
Published?: Yes, https://bitbucket.org/ezeferrero/phi4/
Collaborators: S. Bustingorry, A. Kolton

4) 2D Phi4 model with dipolar interactions (long range)
Parallelization strategy: pseudo-spectral method + embarrassing parallel
Language: CUDA C, C++
Libraries & Tools: Thrust, cuFFT, QEW RNG, PHILOX RNG
Published?: Yes, https://bitbucket.org/ezeferrero/phi4/
Collaborators: S. Bustingorry, A. Kolton

5) 2D Coulomb Glass (long range interactions)
Parallelization strategy: parallel rejection KMC
Language: CUDA C, C++
Libraries & Tools: Thrust, PHILOX RNG
Published?: Yes , https://bitbucket.org/ezeferrero/coulomb_glass
Collaborators: A. Kolton, M. Palassini

6) 1D driven polymer in a 2D disordered media (on a lattice)
Parallelization strategy: partially parallel, searching strategy, ideal for dynamic parallelism (not implemented)
Language: CUDA C, C++
Libraries & Tools: Thrust, cuFFT, PHILOX RNG
Published?: Should be soon
Collaborators: A. Rosso, A. Kolton

7) 2D Mesoplastic model
Parallelization strategy: pseudo-spectral method + embarrassing parallel + 1-thread KMC
Language: CUDA C, C++
Libraries & Tools: Thrust, cuFFT, PHILOX RNG
Published?: Yes, https://bitbucket.org/ezeferrero/epm/
Collaborators: K. Martens, J-L Barrat