Processing and analysing data calls for great computing power and advanced technology stacks. The evolution we witnessing today has been gradual. In this blog, Narendra Shukla reminisces this journey with us.
Ingesting massive amount of data requires exceptionally fast computing power. The appetite for radically advancing the computing speed increased with the need for processing Yottabytes of data. Big data has long been mainstream and has become ubiquitous. Companies like Facebook, Twitter now process Terabytes and Petabytes of data in real time. Technologies like Hadoop, Map-Reduce have revolutionized the IT industry. Apache Spark, with its in-memory engine, has sped up big data processing by 100x.
Multi-Threading, Parallel Processing is the Key:
In order to support the exponential increase in data volumes, big data statistics, predictive modelling and machine learning capabilities became essential. Common statistical programming languages like R, became bottleneck to this process, as they were limited by physical memory of the machine they were running on. R in particular, was designed to use only a single thread at a time.
For example, one of our clients utilizing Simulated Annealing technique for optimizing Launch Sequence of New Drug introductions, experienced significant delay in processing time on a regular basis, while running their applications.
At that time, Microsoft had introduced Microsoft R-Server. It was based on enhanced distribution of R (on top of Open Source CRAN-R), with proprietary multi-threaded Math libraries. These enhancements enabled users to run analytics on datasets much larger than what can fit in a computer’s memory. Matrix operations on huge datasets ran much faster, as they utilized parallel processing power of multi-core machines.
GPU based Computing becomes reality :
As Bots, Drones, Internet Of Things (IoT) and Artificial Intelligence became the next frontier; current mechanisms were still inadequate in terms of processing power and speed. During the entire IT history, CPU was the main work-horse for computation.
A new era has recently dawned. Graphics Processing Unit (GPU) now accelerated Deep Learning, Analytics and Engineering applications. While CPU typically consists of few cores optimized for sequential serial processing, GPU has massive parallel architecture consisting of thousands of smaller, more efficient cores, fully capable of multi-tasking.
To tap into this unlimited potential of high performance computing, nVIDIA launched CUDA, a parallel computing platform and a programming model that directly harnessed the power of GPU. For example, nVIDIA cuDNN is a Deep Learning Neural Network Library, for high performance GPU acceleration, used in frameworks like TensorFlow.
Quantum Computing, What the Future Holds :
While traditional computer uses strings of bits, either zero or one; this new phenomenon, called Quantum Computing, uses quantum bits or qubits. These qubits could be made up of photons, atoms, electrons or molecules. They are capable of processing huge number of calculations simultaneously. These Quantum Computers are believed to have enormous potential. The Quantum revolution is already underway and the possibilities that lie ahead are limitless.
We need to be ready for the technological tsunami like advancements in computing powers that are opening new frontiers in Machine Learning. Science fiction may become reality in near future, faster than we thought. Life will never be the same again.