Research interests
Developed Software
Photo gallery

News about me !!

January 2014 - Habilitation as Associate Professor in Italy

March-April 2013 - My GPU simulations featured on Cover of Transactions on Computational Biology and Bioinformatics

Nov. 2011 - Post Doc of the Month (Interview)

Sep. 2011 - Best Paper Award (RV 2011)

July 2011 - From chaos to cures (Cornell University)

Jan. 2011 - CMACS Researchers Perform First Automated Formal Analysis of Realistic Cardiac Cell Model

UNICAM news:

Random Picture

Last papers                             

Random Poster


PhD Stuff

ADI - Italian PhD Association
Fullbright scolarships
Marie Curie Fellowship Association

My University

SUNY in Stony Brook
Applied Math and Statistics
Computer Science

My Current Research Projects

Survaivable Software

Old Projects

Oncology Over Internet
Litbio Project
Litbio CoSy Group
BioAgent Project
Hermes Project

Counter and browser compatibility

Get Firefox!

Get Thunderbird!

Valid XHTML 1.0 Transitional

"Computers are incredibly fast, accurate, and stupid.
Human beings are incredibly slow, inaccurate, and brilliant.
Together they are powerful beyond imagination."

(Albert Einstein)



Graphics processing units (GPUs) were originally developed as specialized electronic circuits for fast image processing and graphics rendering. GPUs are nowadays heavily employed for all the general purpose applications that require high-performance computational power, because their highly parallel structure makes them more effective than general-purpose CPUs for algorithms where processing of large blocks of data is done in parallel. GPUs are becoming a valid alternative to the classic CPU-based supercomputer clusters also for the improved energy-consumption/performance ratio and their lower cost. GPUs are used in embedded systems, mobile phones, personal computers, workstations, and game consoles. The aim of the course is to provide participants with a general overview about this emerging multi-core parallel computing architecture. The objectives of this course are: Basic notions of Computer Architectures and a good knowledge of C programming are expected, as all the programming will use environments building on C.


The course will start with an introduction on the modern GPU architectures, by tracing the evolution from the SIMD (Single Instruction, Multiple Data) architecture to the current architectural features and by discussing the trends for the future. We then will explore the CUDA Programming Model. Real case studies will expose participants to the potential applications of this technology.


Material Title of the lesson
February 16
10.00-11.00 GPU Technology: Introduction and Motivation
11.00-12.30 CUDA Programming Model
12.30-14.00 Lunch Break
14.00-16.00 CudaProgramSketch
Installing CUDA 6.5 Toolkit on Ubuntu 14.04
Coding in CUDA Lab: (CUDA Examples, Using nsight, nvcc compiler, setting up a simple application)
February 17
10.00-12.30 Threads Atomics and Memories
12.30-14.00 Lunch Break
14.00-16.00 MulMat (without Shared Memory)
MulMat (with Shared Memory)
Coding in CUDA Lab Exercise: Matrix Multiplication
Reaction Diffusion Systems (finite differences)
Bartocci et. al., Toward real-time simulation of cardiac dynamics. In Proc. of CMSB 2011: the 9th ACM International Conference on Computational Methods in Systems Biology, Paris, France, September 21-23, ACM, pp. 103-112, 2011
February 18
10.00-12.30 CUDA Libraries (CURAND, CUFFT THRUST, CUBLAS (full guide, NVIDIA Documentation))
12.30-14.00 Lunch Break
14.00-16.00 Monte Carlo
Parallel Random Number Generation
Parallel Fast Fourier Transform
Coding in CUDA Lab Exercise: Monte Carlo Simulation and FFT
February 19
10.00-12.30 Advanced Topic: CUDA Profiling, CUDA Stream and Concurrency
12.30-14.00 Lunch Break
14.00-16.00 Reduction Examples Coding in CUDA Lab Exercise:
Parallel Reduction techniques (by Demetrio Vilardi).
February 20
10.00-12.30 Advanced Topics: Peer-to-peer & Unified Virtual Adressing, CUDA Multi-GPU