Check out the new USENIX Web site. next up previous
Next: Run-Time System Up: Generation of Prefetch Thread Previous: Inter-Procedural Dependency Analysis

Limitations

There are some limitations on the extraction of I/O related code. Currently we do not support multi-threaded applications. The inter-procedural analysis is also not implemented yet as all our test applications have their computations performed in one procedure. Memory Mapped I/O is not dealt with now, but theoretically it might be done. First, we could add more parsing work to identify if there is a mmap system call with the protection flag set to PROT_READ. Second, we could keep track of the later memory accesses related to the returning address by mmap. Third, some extra synchronizations should be done to make sure that the prefetch thread runs ahead, pre-maps the address, and passes the address to the computation thread later.

Currently the input programs are assumed to be written in ANSI C, therefore the other benchmarks that we could test are rather limited.

For simplicity, we sometimes may sacrifice the accuracy in terms of granularity of identifying an I/O related object (variable). For example, if there exists an array of (structured) objects, where in fact only one element of them is really I/O related. For an easier implementation, we would classify this entire array as I/O related.


next up previous
Next: Run-Time System Up: Generation of Prefetch Thread Previous: Inter-Procedural Dependency Analysis
chuan-kai yang 2002-04-15