Parallelization

by Rafael F
This 8 page article is quite difficult to summarize as it goes into great detail regarding parallelization of Java desktop programs. Parallelization, if I understood correctly is the process of dividing a large task into smaller tasks and running them at the same time, similar to what we refer to as object oriented programming. This process saves time and is most efficient. The article begins by explaining how achieving parallelization can be a “nightmare for software developers” because the developers have to envision the smaller protocols and then “analyze the dependencies” of those smaller processes. The author goes into detail as how desktops are much more difficult as users are accustomed to the GUI and to receive feedback immediately from the machine. The overall problem is that developing object oriented programming, giving immediate feedback, and programming an application without knowing the “system specifications that the application will be executed on” causes a massive problem for developers.

            The problem is only further complicated by the fact that now most desktop machines have multiple cores. The application must be designed as to take advantage of all the cores available as to not cause a freezing of the application, which then leads to frustrated users.  The existing method for parallelizing a GUI application is by using Java Threads. It refers to Java as most object oriented code is written in Java. Without going into much detail, it suffices to say that this method will not work for object oriented parallelization of GUI applications. The article introduces a method ParaTask. To really get the idea of how it works you will need to read the entire article as I myself do not understand it completely. To summarize it’s affects, with the Threading method speed is constant at a lower rate when there is a balanced workload. But  when the workload is unbalanced, that rate drops down dramatically. All the resources available to the application are not used and the user is left waiting. With ParaTasking, all resources are used to their maximum potential with or without a balanced workload.

Taken From Article

I found this article to be significant as we began this week to build our websites. We will be programming soon and as we have learned is courses past, object oriented programming is easier, faster, and more efficient. This article takes those ideas to the next level and helps us to realize that there is so much more out there that is still to learn on how to program applications that will use the full potential of the machines on which they are executed on.  The articles last 3 pages come with examples of code on how to use the ParaTasking features. I know that we are beginning to program but this article made sense to share as it shows what is in store for us in the future.

Giacaman, N., & Sinnen, O. (2011). Object-oriented parallelization of java desktop programs. IEEE Software, 28(1), 32-32-38. doi:10.1109/MS.2010.135