TimTrack is a software for tracking charged particles that uses C language for its speed and flexibility. It uses linear algebra libraries like LAPACK and Intel IPP for numerical computations like solving systems of linear equations. TimTrack version 2.0 implements a new algebra version for faster variance-covariance matrix calculations. Future versions will parallelize computations using OpenMP, MPI, and GPUs with CUDA to further improve performance for large particle datasets.
5. Why C language ?
− Very fast
− Flexible
− Parallelism
− A rich set of libraries
Libraries was used to program timTrack (“algorithms ”)
LAPACK
Intel® IPP
6. BLAS /LAPACK
Is a software library for numerical linear
algebra.
It provides routines for solving systems of linear
equations and linear least squares, eigenvalue
problems, and singular value decomposition.
Specific versions for each CPU model
provided by the vendors
7. Intel® IPP
Integrated Performance Primitives (Intel® IPP)
Is a library of multicore-ready, highly optimized
software functions for digital media and data-
processing applications.
Intel IPP contains a rich set of matrix and vector
operations for a wide variety of applications.
8. timTrack SAETAs solutions
PREVIOUS VERSION NEW algebra VERSION
timTrack v1.0 (LAPACK) timTrack v2.0 (LAPACK)
timTrack v1.1 (IPP)
9. timTrack variance-covariance matrix
PREVIOUS NEW algebra VERSION
VERSIONS
timTrack v2.0 (LAPACK)
timTrack v1.0 (LAPACK)
timTrack v1.1 (IPP)
11. Times for 1.000.000 particles
Old Python and Matlab versions (only 500.000 particles)
165m 47.137 s
timTrack v2.0 LAPACK 23.615 s
timTrack v1.1 intel®IPP 23.495 s
timTrack v1.0 LAPACK 31.188 s
:)
12. Next Steps
• Analyze systematic computing errors
• Check single-precision version
• Parallelize
– Shared memory (OpenMP)
– MPI (master-slave)
– Full distributed
• Implement in GPU
• Study full problem
13. timTrack v2.1
Next step ( still in progress… )
Parallelims with Intel® MPI libraries
Shared parallelism with OpenMP for Multi-core
14. Future !
timtrack v 3.0
CUDA parallel computing architecture in GPUs
CUDA has several advantages over traditional general purpose computation on
GPUs
* Scattered reads
* Shared memory
* Faster downloads from the GPU
* Full support for integer and bitwise operations