Subject: C413 JGSI Review Resent-Date: Thu, 30 Sep 1999 23:18:47 -0400 Resent-From: Geoffrey Fox Resent-To: p_gcf@npac.syr.edu Date: Sun, 19 Sep 1999 20:55:55 +0100 (BST) From: Omer F Rana To: gcf@npac.syr.edu (Geoffrey Fox) C413: Locality optimization in JavaParty by means of static type analysis a) Overall Recommendation ====================== A good paper, and well written. b) Words suitable for authors ========================== 1. The paper is motivated by looking at `data' locality with reference to computation -- as in paragraph 1 of the introduction section. However, the emphasis in the paper seems to be on improving performance in an application by looking at dependencies in method calls. Perhaps, an alternative motivation for introducing the paper? Also see (3) below. 2. The distinction between static and migratable objects is used in the last paragraph of page 1, and first paragraph of page 2, there is then a sudden transition into object type information. How does type analysis influence migration is not clearly mentioned in the introduction. There should, perhaps, be a bridging paragragh that links the concept of object migration with type analysis? 3. From point (1) above, on page 3 (section 2.3), the cost for co-location vs migration is derived -- however, this is based purely on the time to perform an activity `t' and the cost of communication. However, what happens if you are operating on large data sets? Migrating large amounts of data over a network has its own problems -- and these are not considered. Therefore, I think that the motivation of the paper should be changed in the introduction section. Can the cost of data migration also be factored into migrating an object? Just a suggestion. 4. There is no place in the paper where the cost and overhead of cloning is mentioned. What impact does this have. There must be significant memory overheads, for instance, in recursive calls. How are these handled? Can memory constraints not limit object migration also? How are these to be factored into the cost model that is identified in section 2.3? 5. Just a question -- can the techniques outlined in this paper also not be used to calculate upper bounds? If type information can be somehow be arranged in terms of cost, can this technique also not help in calculating bounds -- which may be needed in certain applications? 6. Section 4 -- spelling mistake maybe? new MyThreaad() ... should read new MyThread() similarly for section 4.1, second column, top of page. 7. Similar to point (4), and from section 5.1, what is the additional cost of constructing these look up tables? 8. I think the cost function is rather simplistic -- so I am not sure how useful it has actually been to determine whether migration is good or bad. 9. Performance results are sketchy. Benchmark is not identified. 10. Is reference [13] correct? Either Massachussets OR London is superfluous? Don't you only quote one? c) Words for Prof. Fox =================== This is a great paper, and well written. I am just concerned that no performance results are reported. Although a short comparison is given in section 6, second column, the benchmark application is not identified, nor is the environment (such as version of JDK etc). I am also concerned that the costs of achieving cloning could be significant in certain applications, and applications employing recursive calls may lead to significant overheads.