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 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,
- Synchronization of Threads
OpenMP allows some synchronization process like the only one thread will be crated 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.
- Message Passing
MPI acts as an interfaceand it is called as a communication protocol that supports for parallel programming. It allows many applications to run parallel in different computers that relate to different networks.
- Scheduling Process
Open MP supports for scheduling process like static and dynamic, guided scheduling like chunks rate will get exponentially decreasing and runtime process along with environmentvariables.
- Accessing Multiple threads Restriction
This process of restricting multiple threads at a time is called as semaphores. This process also will help in introducing 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 like when one thread is running the another one will be initiate the process and waits until the first one gets completed.
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 programing so that they need using 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 any one 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 the thread processing happens, there will be a special mechanism called as exception handling 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 cause 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.