Tejal R. Soni
About the Author
Raymond Tay has been a software developer for the past decade and his favorite programming languages include Scala, Haskell, C, and C++. He started playing with GPGPU technology since 2008, first with the CUDA toolkit by NVIDIA and OpenCL toolkit by AMD, and then Intel. In 2009, he decided to submit a GPGPU project on which he was working to the editorial committee working on the "GPU Computing Gems" to be published by Morgan Kauffmann. And though his work didn't make it to the final published work, he was very happy to have been short-listed for candidacy. Since then, he's worked on projects that use GPGPU technology and techniques in CUDA and OpenCL. He's also passionate about functional programming paradigms and their applications in cloud computing which has led him investigating on various paths to accelerate applications in the cloud through the use of GPGPU technology and the functional programming paradigm. He is a strong believer of continuous learning and hopes to be able to continue to do so for as long as he possibly can.
This book could not have been possible without the support of foremost, my wife and my family, as I spent numerous weekends and evenings away from them so that I could get this book done and I would make it up to them soon. Packt Publishing for giving me the opportunity to be able to work on this project and I've received much help from the editorial team and lastly to the reviewing team, and I would also like to thank Darryl Gove The senior principal software engineer at Oracle and Oleg Strikov the CPU Architect at NVIDIA, who had rendered much help for getting this stuff right with their sublime and gentle intellect, and lastly to my manager, Sau Sheong, who inspired me to start this. Thanks guys.
About the Reviewers
Nitesh Bhatia is a tech geek with a background in information and communication technology ( ICT ) with an emphasis on computing and design research. He worked with Infosys Design as a user experience designer, and is currently a doctoral scholar at the Indian Institute of Science, Bangalore. His research interests include visual computing, digital human modeling, and applied ergonomics. He delights in exploring different programming languages, computing platforms, embedded systems and so on. He is a founder of several social media startups. In his leisure time, he is an avid photographer and an art enthusiast, maintaining a compendium of his creative works through his blog Dangling-Thoughts (http://www.dangling-thoughts.com).
Darryl Gove is a senior principal software engineer in the Oracle Solaris Studio team, working on optimizing applications and benchmarks for current and future processors. He is also the author of the books, Multicore Application Programming , Solaris Application Programming , and The Developer's Edge . He writes his blog at http://www.darrylgove.com.
Seyed Hadi Hosseini is a software developer and network specialist, who started his career at the age of 16 by earning certifications such as MCSE, CCNA, and Security+. He decided to pursue his career in Open Source Technology, and for this Perl programming was the starting point. He concentrated on web technologies and software development for almost 10 years. He is also an instructor of open source courses. Currently, Hadi is certified by the Linux Professional Institute, Novell, and CompTIA as a Linux specialist (LPI, LINUX+, NCLA and DCTS). High Performance Computing is one of his main research areas. His first published scientific paper was awarded as the best article in the fourth Iranian Bioinformatics Conference held in 2012. In this article, he developed a super-fast processing algorithm for SSR in Genome and proteome datasets, by using OpenCL as the GPGPU programming framework in C language, and benefiting from the massive computing capability of GPUs.
Special thanks to my family and grandma for their invaluable support. I would also like to express my sincere appreciation to my wife, without her support and patience, this work would not have been done easily.
Kyle Lutz is a software engineer and is a part of the Scientific Computing team at Kitware, Inc, New York. He holds a bachelor's degree in Biological Sciences from the University of California at Santa Barbara. He has several years of experience writing scientific simulation, analysis, and visualization software in C++ and OpenCL. He is also the lead developer of the Boost.Compute
library a C++ GPU/parallel-computing library based on OpenCL.
Viraj Paropkari has done his graduation in computer science from University of Pune, India, in 2004, and MS in computer science from Georgia Institute of Technology, USA, in 2008. He is currently a senior software engineer at Advanced Micro Devices ( AMD ), working on performance optimization of applications on CPUs, GPUs using OpenCL. He also works on exploring new challenges in big data and High Performance Computing ( HPC ) applications running on large scale distributed systems. Previously, he was systems engineer at National Energy Research Scientific Computing Center ( NERSC ) for two years, where he worked on one of the world's largest supercomputers running and optimizing scientific applications. Before that, he was a visiting scholar in