28(1), 91–117 (2004)Ĭharles, P., Grothoff, C., Saraswat, V., Donawa, C., Kielstra, A., Ebcioglu, K., Von Praun, C., Sarkar, V.: X10: an object-oriented approach to non-uniform cluster computing. 21(3), 291–312 (2007)Ĭhan, B., Abdelrahman, T.S.: Run-time support for the automatic parallelization of Java programs. Springer, Berlin (2008)Ĭhamberlain, B., Callahan, D., Zima, H.: Parallel programmability and the chapel language. 9(6), 579–619 (1997)īondhugula, U., Baskaran, M., Krishnamoorthy, S., Ramanujam, J., Rountev, A., Sadayappan, P.: Automatic transformations for communication-minimized parallelization and locality optimization in the polyhedral model. IEEE 81(2), 211–243 (1993)īik, A.J., Gannon, D.B.: Automatically exploiting implicit parallelism in Java. Springer, Berlin (2008)īanerjee, U., Eigenmann, R., Nicolau, A., Padua, D.A., et al.: Automatic program parallelization. (eds.) Languages and Compilers for Parallel Computing, pp. In: Adve, V., Garzarán, M.J., Petersen, P. 20(3), 404–418 (2009)Īyguadé, E., Duran, A., Hoeflinger, J., Massaioli, F., Teruel, X.: An experimental evaluation of the new openmp tasking model. In: IMPACT 2012: Second International Workshop on Polyhedral Compilation Techniques HiPEAC 2012 (2012)Īyguadé, E., Copty, N., Duran, A., Hoeflinger, J., Lin, Y., Massaioli, F., Teruel, X., Unnikrishnan, P., Zhang, G.: The design of openmp tasks. The resulting parallel code also has the advantage of being readable and easily configured to improve further its performance manually.Īmini, M., Creusillet, B., Even, S., Keryell, R., Goubier, O., Guelton, S., McMahon, J.O., Pasquier, F.X., Péan, G., Villalon, P.: Par4all: from convex array regions to heterogeneous computing. In some cases, values were close to those of a manual parallelization. We have evaluated our approach on 8 benchmark programs against OoOJava, achieving higher speedups. This work focuses on the Java language, but the techniques are general enough to be applied to other programming languages. Furthermore, a compile-time granularity control mechanism also avoids creating unnecessary data-structures. ![]() A work-stealing-based parallel runtime is responsible for scheduling and managing the granularity of the generated tasks. Parallel tasks are composed by instructions that cannot be executed in parallel. Afterwards, the compiler, based on the generated dependencies graph, rewrites and organizes the program in a task-oriented structure. We created a new parallelizing compiler that analyses the read and write instructions, and control-flow modifications in programs to identify a set of dependencies between the instructions in the program. This work proposes a new approach for achieving such goal. Automatically parallelizing sequential code, to promote an efficient use of the available parallelism, has been a research goal for some time now. There are billions of lines of sequential code inside nowadays’ software which do not benefit from the parallelism available in modern multicore architectures.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |