28.07.2013 Views

Performance Analysis and Optimization of the Hurricane File System ...

Performance Analysis and Optimization of the Hurricane File System ...

Performance Analysis and Optimization of the Hurricane File System ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CHAPTER 6. MICROBENCHMARKS – OTHER FUNDAMENTAL OPERATIONS 58<br />

avg # cycles per processor<br />

4e+07<br />

3e+07<br />

2e+07<br />

1e+07<br />

0e+00<br />

2 4 6 8 10 12<br />

# processors<br />

Original read test<br />

Original read test: perfect memory<br />

Stat<br />

Figure 6.12: Stat.<br />

6.4 <strong>File</strong> Stat<br />

avg # cycles per processor<br />

1e+08<br />

5e+07<br />

0e+00<br />

2 4 6 8 10 12<br />

# processors<br />

Stat + processing<br />

Stat<br />

Figure 6.13: Stat – +processing.<br />

avg # cycles per processor<br />

2e+07<br />

1.5e+7<br />

1e+07<br />

5e+06<br />

0e+00<br />

2 4 6 8 10 12<br />

# processors<br />

Stat + processing<br />

Stat<br />

Figure 6.14: Stat – +processing.<br />

We examined <strong>the</strong> scalability <strong>of</strong> <strong>the</strong> getAttribute() operation in <strong>the</strong> next set <strong>of</strong> experiments. As described<br />

in Section 3.6.1 on page 24, getAttribute() returns <strong>the</strong> attributes <strong>of</strong> a target file or directory identified by a<br />

file token. This experiment was basically a subset <strong>of</strong> <strong>the</strong> unoptimized extent-based read test in Section 5.2<br />

since, in <strong>the</strong> file stat experiment, <strong>the</strong> file status operation is executed but file block reading <strong>and</strong> file status<br />

updating is not performed. Each thread executed on its own processor, disk, <strong>and</strong> file. For each thread, <strong>the</strong><br />

getAttribute() file system operation was performed 3136 times on its own extent-based file, matching <strong>the</strong><br />

number <strong>of</strong> times <strong>the</strong> operation was performed on <strong>the</strong> superset <strong>of</strong> <strong>the</strong> experiment (Section 5.2), <strong>and</strong> allowing<br />

for easy comparison <strong>of</strong> results. The results <strong>of</strong> using unoptimized HFS, shown in Figure 6.12 1 , are similar<br />

to <strong>the</strong> extent-based read test (Section 5.3), since <strong>the</strong> experiment was simply a subset <strong>of</strong> <strong>the</strong> read test.<br />

6.4.1 + Processing<br />

This experimental configuration was a slightly more realistic file stat test. The configuration is similar to<br />

Section 6.4, except that it processes <strong>the</strong> file status data into <strong>the</strong> st<strong>and</strong>ard Unix format before returning from<br />

<strong>the</strong> call. More specifically, it converts <strong>the</strong> HFS format <strong>of</strong> file status to <strong>the</strong> more widely used Unix/Linux/GNU<br />

file status format. As shown in Figure 6.13 2 <strong>and</strong> Figure 6.14 3 , <strong>the</strong> results were fairly similar to <strong>the</strong> previous<br />

file stat experiment in Section 6.4 as might be expected. It took slightly longer for <strong>the</strong> extra processing,<br />

however <strong>the</strong> maximum error bar range on 12 processors was much greater.<br />

1 Error bars were removed from <strong>the</strong> unoptimized 12 processor configuration.<br />

2 Error bars were removed from <strong>the</strong> unprocessed 12 processor configuration.<br />

3 Error bars were removed from <strong>the</strong> 12 processor configurations.

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

Saved successfully!

Ooh no, something went wrong!