social media related image

CS110-Distributed and Parallel Computing Technologies

Question:2 Parallel Programming

2. a) Types of features in Modern Programming Languages that are used in Parallel Programming

Concurrent programming or parallel programming is a process or language which is processed with a simultaneously running process. The Apache Hadoop and OpenHMPP, MPI supports parallelism in most of the host languages. The following features support for this process include,

  1. Synchronization of Threads

OpenMP allows some synchronization processes like only one thread will be created at a time and multiple threads are not possible in this case. Here the memory update is termed as atomic but not all features atomic here.

  1. Message Passing

MPI acts as an interface it is called a communication protocol that supports parallel programming. It allows many applications to run parallel in different computers that relate to different networks.


  1. Scheduling Process

Open MP supports for scheduling processes like static and dynamic, guided scheduling like chunks rate will get exponentially decreasing and runtime process along with environment variables.

  1. Accessing Multiple threads Restriction

This process of restricting multiple threads at a time is called semaphores. This process also will help in introducing the synchronization process.

All the above are the main characteristics and one more thing like mutual exclusion also is an important one which explained here as when one thread is running another one will initiate the process and waits until the first one gets completed.


  1. b)

In each scenario, the company uses the two functions of parallel programming like lock and thread. For website accessing, the company had used C++ for programming so that they need to use threads and as well as locks. It is well known that whenever running multiple programs at a time, there is a problem of system hang and programs lock.

Moreover, gives major importance to use thread and lock. It should not be used at a time because there will be a problem occur in this case. For example, consider the company website is running with two threads at a time. It will become a problem before completing one thread if anyone thread had been started access. So that the program gets stopped in confusion.


In this case, while the first thread is running, the second one must be stopped and then it must initiate its process.

In the next point when considering the lock function, it will do its performance of overlapping issues. But it took more time so that the processing time will get exceeded. This is mainly causing some programming performance issues whenever it is initiated.

It is known well that whenever thread processing happens, there will be a special mechanism called exception handling that should get processed. But sometimes there are situations some exceptions are being left out. During this situation, the system problem occurs.

In these circumstances in C++, there is a need of writing multi-thread in the process. But there is a problem in using this like difficulty in writing codes, to carry out the debugging process is very tough, it is difficult to perform testing. So that it also cannot be executed. Therefore, thread causes a major problem in the process.

According to GUI usage, if it is not processed perfectly, then it will cause a problem. It also will result in programming unresponsiveness. While many devices access at a time, the system performance will be degraded since threads and lock confusion in the system process.


Leave a Comment