The Year was 2004. Major processor companies had experienced the frequency wall @4Ghz. Gone was the era of improving computing power by increasing frequency.
The solution was simple: Make more silicon area available for processor cores. Thus came to life the Many Core Processors.
Fast Forward to today : Dual Cores / Quad Cores are COTS [Commercial-Off-The-Shelf] items. There are 64 Core x86 grade processors available as Co-Processors. But how many softwares make use of the multicores ?
This Project is about a Book , one that removes the ambiguity around Multi Core processors and More Importantly training people to Program the Multi Core processors of the Future.
Content of the Book:
- Basic Computer Architecture
- Introduction to Multi Core
- Types of Parallel processing
- Task Processing
- PThreads Library
- Introduction to Parallel Algorithms
- Message Passing Interface (MPI)
- Data Parallel Problems
- Multimedia Extensions (MMX)
- Streaming SIMD Extensions (SSE)
- Advanced Vector Extensions (AVX)
- Introduction to OpenCL
- Tutorials on every chapter with solutions [40%]
This is for people who are acquainted with Linux and C language and have some idea about the processor architecture. If you are a wannabe HPC coder, this is for you. If you are writing Apps that run in the cloud and you want to extract all the power of the cloud this is for you. If you want to write High end Games , Simulations , This is for you. If you are a researcher who needs to write compute intensive code , this book is a must.
[From MMX/SSE Chapter ]
Data Parallel Computation : [To Sum up]
- Is in contrast to task parallel computation.
- Each processor executes the same code for different data
- Popularly Known as SIMD [Single Instruction Multiple Data]
- Computation occurs on Vectors
- Earlier Supercomputers [CRAY] used to specialize in such
- GPU's have come into the foray for SIMD
- x86 has a rich instruction set to take advantage of SIMD
Methods to Program in SIMD:
- Assembly Language : This requires the minimal amount of support tool but is the most difficult code format to write and maintain.
- Libraries and API: Useful but may not provide complete coverage.
- Compiler arguments : Also known as compiler hints , some compiler hints are kept in code as well as passed during compilation to help with generating SIMD code. Sometimes lead to poor performance as teh compiler is unable to find out a proper mapping.
- Compiler Intrinsics: Best method so far , just requires a header.
Why should you fund us :
A book writing is a lot of work. And we intend to make it fun for the readers. As of now , we have the technical content ready but for engaging the user its not sufficient. We want to include small comic strips , illustrations throughout the book which the users can : relate to , learn from , laugh at. We need graphic designers for the same , plus we need to make an initial investment to publish the book in a minimum quantity. With your support , We intent to meet the minimum ( and hopefully do better :) ) . So please , fund us and spread the word.
Risks and challenges
We foresee the following challenge :
> Delay in production due to minimum order not being met
Rest all we will take care of ! The technical data is there , we only need to provide illustrations , formatting , proof reading and publish . Thats it ! really!Learn about accountability on Kickstarter
- (30 days)