# Applications of Parallel Computing

### Introduction

Applications under this category are mainly scientific calculations which require lots of processing power and have high amount of data to be processed. These applications, if performed on a single machine, would take months to complete. One simple example of such a computation is performing matrix multiplication. The time required to compute the multiplication increases exponentially as the order of the matrices increases. This report covers this aspect of parallel computing.

Another exciting field where parallel computing could be used under this category is Cryptography. A very famous approach to identify the key of a given cipher text is to apply the Brute Force attack, wherein you exhaustively try out as many keys as possible until the correct key is found. The no. of keys that could be tried could range between 0 to 2128 or more. Performing such tasks in parallel could save lot of time.

## Matrix Multiplication

### Introduction

Parallel processing is widely used for solving complex tasks which require large amount of computation and take a long time for completion. Matrix multiplication is one such task which is almost invariably used in most of the complex mathematical calculations involved in applications like Graph Theory, Digital Signal Processing, Encryption/Decryption, Computer Graphics and Simulations.

We performed a simple vector multiplication of two NXM matrices using the block multiplication technique. The results obtained were analyzed and comparison was done to note the speedup achieved.