Educational Materials - Section under construction!

Computing devices have been evolving over time allowing the execution of more than one instruction at a time. This has been possible due to changes on their architectures. In this section you will learn about, and understand the different types of Parallel Computing Architectures.

Parallel Computing Architectures

General Purpose Graphics Processing Units, what we usually know as "Video Cards" were originally made for rendering high quality video and images on our computers. But did you know that they can also be used for computing purposes? Learn more about this topic in this section.

General Purpose Graphics Processing Units

MATLAB has always had tools for helping researchers, engineers, mathematicians, scientists, etc. to get faster and more accurate results. Parallel Computing Toolbox is one more of them. This tool is targeted towards the use of parallel environments. Want to learn how it works? You are in the right section!

MATLAB's Parallel Computing Toolbox

Discrete Event Simulations are crucial on many types of research projects. Pseudo Random Number Generators are the heart of this simulations and have a very big impact on the performance and accuracy of these simulations. Learn more about this generators on this section.

Pseudo Random Number Generators

References

[1] J. Sanders and E. Kandrot, CUDA by Example: An Introduction to General Purpose GPU programming, Addison-Wesley, 2010.
[2] H. Park and P. A. Fishwick, "A GPU-Based Application Framework Supporting Fast Discrete-Event Simulation," Simulation, vol. 86, no. 10, pp. 613-628, October 2010.
[3] NVIDIA, "NVIDIA Developer Zone," [Online]. Available: https://developer.nvidia.com/. [Accessed 2012]
[4] J. Nickolls, I. Buck, M. Garland and K. Skadron, "Scalable Parallel Programming with CUDA," Queue - GPU Computing, vol. 6, no. 2, pp. 40-53, March/April 2008.
[5] R. Duncan, "A Survey of Parallel Computer Architectures," Computer, vol. 23, no. 2, pp. 5-16, 1990.
[6] R. Farber, CUDA: Application Design and Development, Waltham, Massachusetts: Elsevier Inc., 2011.
[7] D. B. Kirk and W.-m. W. Hwu, Programming Massively Parallel Processors, Burlington, Massachusetts: Elsevier, 2010.
[8] J. K. Salmon, M. A. Moraes, R. O. Dror and D. E. Shaw, "Parallel Random Numbers: As Easy as 1, 2, 3," in Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC '11), ACM, New York, NY, 2011.
[9] J. Banks, J. S. C. II, B. L. Nelson and D. M. Nicol, Discrete-Event System Simulation, 5th ed., Prentice Hall, 2010.
[10] C. L. Phillips, J. A. Andreson and S. C. Goltzer, "Pseudo-Random Number Generation for Brownian Dynamics and Dissipative Particle Dynamics Simulations on GPU Devices," Journal of Computational Physics, vol. 230, no. 19, pp. 7191-7201, 10 August 2011.
[11] N. Nandapalan, R. P. Brent, L. M. Murray and A. P. Rendell, "High-Performance Pseudo-Random Number Generation on Graphics Processing Units," in Proceedings of the 9th International Conference on Parallel Processing Applied Mathematics (PPAM'11), 2009.
[12] W. Langdon, "A Fast High Quality Pseudo Random Number Generator for Graphics Processing Units," in Congress on Evolutionary Ccomputation 2008 (IEEE World Congress on Computational Intelligence), Hong Kong, 2008.
[13] NVIDIA, "http://docs.nvidia.com/cuda/pdf/CUDA_C_Programming_Guide.pdf," October 2012. [Online]. Available: http://docs.nvidia.com/cuda/pdf/CUDA_C_Programming_Guide.pdf. [Accessed 21 February 2013].
[14] M. Flynn, "Very high-speed computing systems," Proceedings of the IEEE, vol. 54, no. 12, pp. 1901-1909, 1966.
[15] M. Flynn, K. Rudd, "Parallel Architectures," ACM Computing Surveys, vol. 28, no. 1, pp. 67-70, March 1996.