automatically exploiting cross-invocation parallelism using runtime ...

automatically exploiting cross-invocation parallelism using runtime ... automatically exploiting cross-invocation parallelism using runtime ...

dataspace.princeton.edu
from dataspace.princeton.edu More from this publisher
13.07.2015 Views

5.2 SPECCROSS Performance EvaluationEight programs are evaluated for SPECCROSS. As DOMORE evaluation, We comparedtwo parallel versions of these programs: (a) pthreads-based [9] parallelization with nonspeculativepthread barriers; and (b) pthreads-based parallelization with SPECCROSS.SPECCROSS is used with a pthreads-based implementation, since the recovery mechanismrelies on the properties of POSIX threads. For the performance measurements, the bestsequential execution of the parallelized loops is considered the baseline.For most of these programs, the parallelized loops account for more than 90% of theexecution time. When parallelizing using SPECCROSS, each loop iteration is regarded as aseparate task and the custom hash function used for calculating the access signatures keepstrack of the range of memory locations (or array indices) accessed by each task. This choiceis guided by the predominantly array-based accesses present in these programs. Each parallelprogram is first instrumented using the profiling functions provided by SPECCROSS.The profiling step recommends a minimum dependence distance value for use in speculativebarrier execution. All benchmark programs have multiple input sets. We chosethe training input set for profiling run. Table 5.3 shows the minimum dependence distanceresults for the evaluated programs using two different input sets (a training input set for profilingrun and another reference input set for performance run). Four of the eight programshad runtime dependences detected by profiling functions while the rest do not. The minimumdependence distance between two inner loops in program FLUIDANIMATE varies alot. Some of the loops do not cause any runtime access conflicts while others have a verysmall minimum dependence distance. For the latter case, SPECCROSS basically serves asa non-speculative barrier. The results of the profiling run were passed to speculative barrierexecution which used the minimum dependence distance value to avoid misspeculation.Figure 5.2 compares the speedups achieved by the parallelized loops using pthreadbarriers and SPECCROSS. It demonstrates the benefits of reducing the overhead in barriersynchronization. The best sequential execution time of the parallelized loops is considered82

# of MinimumBenchmark # of tasks # of epochs checking Distancerequests train refCG 63000 7000 40609 * *EQUAKE 66000 3000 55181 * *FDTD 200600 1200 96180 599 799FLUIDANIMATE-2 1379510 1488 295000 54 / * 54 / *JACOBI 99400 1000 67163 497 997LLUBENCH 110000 2000 81965 * *LOOPDEP 245000 1000 98251 500 800SYMM 500500 2000 369731 * *Table 5.3: Details of benchmark programs. * indicates no access conflicts are detected inprofiling.as the baseline. The original execution with pthread barriers does not scale well beyond asmall number of cores. Among the eight programs in barriers, CG performs the worst sinceeach of its epochs only contains nine iterations. With higher thread counts, the overheadcaused by barriers increases without any gains in parallelism.The speculative barrier solution provided by SPECCROSS enables all programs to scaleto higher thread counts when compared to an equivalent execution with pthread barriers.At lower thread counts, pthread barrier implementation for some programs yields betterperformance than SPECCROSS. This happens for two reasons: (a) SPECCROSS requires anextra thread for violation detection. At lower thread counts, one fewer thread is availableto do actual work which is significant when total number of threads is small; (b) the overheadof barrier synchronization increases with increasing thread counts. As a result, theeffectiveness of SPECCROSS is more pronounced at higher thread counts.In our evaluation, the program state is checkpointed once every 1000 epochs. For theeight programs evaluated, profiling results are accurate enough to result in high-confidencespeculation and no misspeculation is recorded at runtime. As a result, the operations thatcontribute to major runtime overheads include computing access signatures, sending checkingrequests, detecting dependence violation, and checkpointing.Table 5.3 shows for each program, the number of tasks executed, the number of epochs,83

# of MinimumBenchmark # of tasks # of epochs checking Distancerequests train refCG 63000 7000 40609 * *EQUAKE 66000 3000 55181 * *FDTD 200600 1200 96180 599 799FLUIDANIMATE-2 1379510 1488 295000 54 / * 54 / *JACOBI 99400 1000 67163 497 997LLUBENCH 110000 2000 81965 * *LOOPDEP 245000 1000 98251 500 800SYMM 500500 2000 369731 * *Table 5.3: Details of benchmark programs. * indicates no access conflicts are detected inprofiling.as the baseline. The original execution with pthread barriers does not scale well beyond asmall number of cores. Among the eight programs in barriers, CG performs the worst sinceeach of its epochs only contains nine iterations. With higher thread counts, the overheadcaused by barriers increases without any gains in <strong>parallelism</strong>.The speculative barrier solution provided by SPECCROSS enables all programs to scaleto higher thread counts when compared to an equivalent execution with pthread barriers.At lower thread counts, pthread barrier implementation for some programs yields betterperformance than SPECCROSS. This happens for two reasons: (a) SPECCROSS requires anextra thread for violation detection. At lower thread counts, one fewer thread is availableto do actual work which is significant when total number of threads is small; (b) the overheadof barrier synchronization increases with increasing thread counts. As a result, theeffectiveness of SPECCROSS is more pronounced at higher thread counts.In our evaluation, the program state is checkpointed once every 1000 epochs. For theeight programs evaluated, profiling results are accurate enough to result in high-confidencespeculation and no misspeculation is recorded at <strong>runtime</strong>. As a result, the operations thatcontribute to major <strong>runtime</strong> overheads include computing access signatures, sending checkingrequests, detecting dependence violation, and checkpointing.Table 5.3 shows for each program, the number of tasks executed, the number of epochs,83

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!