Next: Run-Time System
Up: Generation of Prefetch Thread
Previous: Inter-Procedural Dependency Analysis
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: Run-Time System
Up: Generation of Prefetch Thread
Previous: Inter-Procedural Dependency Analysis
chuan-kai yang
2002-04-15