Subject: Re: Java for High-Performance Computing From: "Orlando Loques" Date: Mon, 9 Jul 2001 16:24:15 -0300 To: fox@csit.fsu.edu CC: "Marcelo Lobosco" , "Claudio Luis Amorim" Dear Prof. Fox, In annex, I am sending the revised version of the paper "Java for High-Performance Network-Based Computing: A Survey". Also included is a summary of the main changes we made in response to the comments made by yourself and the referees. Our survey paper covers relevant proposals related to cluster computing, parallel and distributed computing, metacomputing and to specific data communication aspects. In some way, all the surveyed papers tackle Java's performance bottlenecks. Thus, we included in the new title the words "network-based" and "high-performance computing" as an attempt to express such diversity. Finally, we would like to thank you and the referees for the useful comments and suggestions, including those regarding the English language. Please, do not hesitate to contact me if you have any questions. I look forward to hearing from you soon. Yours cordially, Orlando Loques ---------------------------------------------------------------------------- ----- Summary of modifications; Editor - We tried to improve the quality of the English. - We have updated considerably some project status data, including performance figures as well. - We changed the JCI topic title to "JCI plus MPI". In the same section, we had already described the use of JCI combined with MPI. - We modified the title of our survey to focus it on network-based computing issues. ---------------------------------------------------------------------------- ----- Referee 1 - Uniformity of descriptions - some projects are described in more details because: (a) they present more interesting ideas than other projects; and/or (b) they are in more advanced stages than other projects. - We improved the general description at the beginning of each subsection. - The mentioned unreachable reference was corrected. - We wrote "Accessed on ." on web references because the John Wiley & Sons author's guide says that online citations should include the date of access. We used online citations only where papers or reports were unavailable. - We found NinjaRMI and NexusRMI very interesting projects. However, it seems that they are not focused on high performance computing. In addition, we have not found published papers on them. - KaRMI and JavaParty are being developed by the same research group. However they are independent tools: you can use KaRMI without Javaparty, and Javaparty without KaRMI. So we decided to analyze them as distinct tools. A comment about this has been included in the text. - The code was corrected, the figures improved and the chapters and sections were numbered. ---------------------------------------------------------------------------- ----- Referee 2 - The discussion about what features a high-performance computing environment should have is a very interesting one. However, we think it would require writing another paper. We just intended to describe and analyze the Java-based proposals aimed to give support to high-performance network-based computing. In our view, concurrency (parallel activity), data sharing, language level issues, and communication, are general and relevant parameters in this context. Aspects such as load balancing and schedulling are also relevant, but much more specific and constitute a research "niche". Anyway, whenever appropriate they were discussed in our survey. We recognize that it would be very interesting (but also very difficult) to relate all these aspects in a single survey. - The paper cited by the referee is interesting, but we think that it is out of the scope of our paper. - Almost all the statements cited by the referee were changed to be "better qualified". The only exception is the statement: "portability is very convenient for applications that should run on heterogeneous network". The referee asked about performance, saying that it's the main issue in HPC. We agree, but at this point we were trying to explain why Java became popular as a programming language, not why it is being used for HPC. ---------------------------------------------------------------------------- ----- Referee 3 - We have corrected all the language errors pointed out in our paper. We would like to thank him for listing them ... ---------------------------------------------------------------------------- ----- Referee 4 (1) We modified the title of our work to make clear that it is focused on high-performance network-based computing issues. So, the discussion about sequential Java and OpenMP are out of the scope of the paper. (2) Pugh's paper is really very interesting. In fact, we share some of his points. Anyway, our paper is not intended to criticize the Java's Memory Model. - p26 Using Java Library --- We keep our view, that is, if a programmer must change the way he/she writes a program in order to use a library (e.g., free a memory area that should be automatically garbage collected; design the program to fit a different memory model), then the library has imposed a modification in the language standard usage. - In what concerns Charlotte, we should say that (a) standard Charlotte does not offer compiler annotations; (b) the annotations proposed by Holger Karl are also included as a library, so they are dynamically evaluated; and (c) Karl states that the overhead of this dynamic evaluation could be transferred to a compiler. -p45 - The characterization of a future object is exactly the same as described in Caromel et alli paper, "Towards seamless computing and metacomputing in Java". In our survey, we just reproduced the definition the author made. -p46ff - p34 - p49ff - Our work analyzes both: models and implementation improvements. This explains why we decided to include Javia, KaRMI and other environments. -p55 - The referee asked how could the compiler perform dynamic inspection. For example, when a class to be serialized/deserialized is marked as "final", the cost of the virtual call to the serializer/deserializer can be passed to a compiler. This happens because the compiler can determine at compile time the right serializer/deserializer. Manta's paper provides specific examples and details. - Most of the referees remaining points were accepted; the text was modified accordingly. ---------------------------------------------------------------------------- ----- Referee 5 - title: We added the words "a survey", as recommended. - p4-15: We kept the section on Java to leave the paper self contained. We think that a reader familiar with the Java language can skip the section. Anyway, we reduced its size. - p20 - We attributed the figures to their authors, as suggested. - p26 - p28: We have substantially improved the section that introduces Aleph and Charlotte, in a way to respond the questions made by the referee. - p58: We reorganized the table, in a way that the projects appear in the order they were introduced originally in the survey. - p60 and references: We have changed reference 22 by a similar paper that is more accessible. The references not cited in the paper were removed, and now the references are in alphabetical order. - The grammar and language errors pointed out were corrected. Our thanks to the referee.