1 | I would like you address the comments of Reviewer 2, particularly with |
---|
2 | regard to the description of the adaptation Java harness to deal with |
---|
3 | warmup. I would expect to see a convincing argument that the computation |
---|
4 | has reached a steady state. |
---|
5 | |
---|
6 | We understand referee2 and your concern about the JIT experiments, which is why |
---|
7 | we verified our experiments with two experts in JIT development for both Java |
---|
8 | and Node.js before submitting the paper. We also read the supplied papers, but |
---|
9 | most of the information is not applicable to our work for the following |
---|
10 | reasons. |
---|
11 | |
---|
12 | 1. SPEC benchmarks are medium to large. In contrast, our benchmarks are 5-15 |
---|
13 | lines in length for each programming language (see code for the Cforall |
---|
14 | tests in the paper). Hence, there is no significant computations, complex |
---|
15 | control flow, or use of memory. They test one specific language features |
---|
16 | (context switch, mutex call, etc.) in isolation over and over again. These |
---|
17 | language features are fixed (e.g., acquiring and releasing a lock is a fixed |
---|
18 | cost). Therefore, unless the feature can be removed there is nothing to |
---|
19 | optimize at runtime. But these features cannot be removed without changing |
---|
20 | the meaning of the benchmark. If the feature is removed, the timing result |
---|
21 | would be 0. In fact, it was difficult to prevent the JIT from completely |
---|
22 | eliding some benchmarks because there are no side-effects. |
---|
23 | |
---|
24 | 2. All of our benchmark results correlate across programming languages with and |
---|
25 | without JIT, indicating the JIT has completed any runtime optimizations |
---|
26 | (added this sentence to Section 8.1). Any large differences are explained by |
---|
27 | how a language implements a feature not by how the compiler/JIT precesses |
---|
28 | that feature. Section 8.1 discusses these points in detail. |
---|
29 | |
---|
30 | 3. We also added a sentence about running all JIT-base programming language |
---|
31 | experiments for 30 minutes and there was no statistical difference, |
---|
32 | med/avg/std correlated with the short-run experiments, which seems a |
---|
33 | convincing argument that the benchmark has reached a steady state. If the |
---|
34 | JIT takes longer than 30 minutes to achieve its optimization goals, it is |
---|
35 | unlikely to be useful. |
---|
36 | |
---|
37 | 4. The purpose of the performance section is not to draw conclusions about |
---|
38 | improvements. It is to contrast program-language implementation approaches. |
---|
39 | Section 8.1 talks about ramifications of certain design and implementation |
---|
40 | decisions with respect to overall performance. The only conclusion we draw |
---|
41 | about performance is: |
---|
42 | |
---|
43 | Performance comparisons with other concurrent systems and languages show |
---|
44 | the Cforall approach is competitive across all basic operations, which |
---|
45 | translates directly into good performance in well-written applications |
---|
46 | with advanced control-flow. |
---|
47 | |
---|
48 | |
---|
49 | I would also like you to provide the values for N for each benchmark run. |
---|
50 | |
---|
51 | Done. |
---|
52 | |
---|
53 | |
---|
54 | Referee 2 suggested |
---|
55 | |
---|
56 | * don't start sentences with "However" |
---|
57 | |
---|
58 | However, there are numerous grammar sites on the web indicating "however" (a |
---|
59 | conjunction) at the start of a sentence is acceptable, e.g.: |
---|
60 | |
---|
61 | https://www.merriam-webster.com/words-at-play/can-you-start-a-sentence-with-however |
---|
62 | This is a stylistic choice, more than anything else, as we have a |
---|
63 | considerable body of evidence of writers using however to begin sentences, |
---|
64 | frequently with the meaning of "nevertheless." |
---|