Hello,
I'm a TAU developer. I've been trying to get the appio component to work with PAPI through TAU. Towards that end, I've been experimenting with the tests in src/components/appio/tests.
The test appio_test_read_write, run as built by the Makefile, prints the expected results:
This program will read /etc/group and write it to /dev/null
----
appio:::OPEN_CALLS: 2
appio:::OPEN_FDS: 0
appio:::READ_CALLS: 9
appio:::READ_BYTES: 7993
appio:::READ_USEC: 14
appio:::READ_ERR: 0
appio:::READ_INTERRUPTED: 0
appio:::READ_WOULD_BLOCK: 0
appio:::WRITE_CALLS: 8
appio:::WRITE_BYTES: 7993
appio:::WRITE_USEC: 6
appio:::WRITE_WOULD_BLOCK: 0
The Makefile builds the test statically linked against libpapi.a. If I instead build it dynamically linked against libpapi.so, then all of the counters are zero:
This program will read /etc/group and write it to /dev/null
----
appio:::OPEN_CALLS: 0
appio:::OPEN_FDS: 0
appio:::READ_CALLS: 0
appio:::READ_BYTES: 0
appio:::READ_USEC: 0
appio:::READ_ERR: 0
appio:::READ_INTERRUPTED: 0
appio:::READ_WOULD_BLOCK: 0
appio:::WRITE_CALLS: 0
appio:::WRITE_BYTES: 0
appio:::WRITE_USEC: 0
appio:::WRITE_WOULD_BLOCK: 0
Does using the appio component require that the application be linked statically against libpapi.a in order to intercept the I/O calls?
Thanks,
Nicholas Chaimov
HPC Computer Scientist
ParaTools, Inc.
1900 Millrace Dr Ste 104
Eugene, OR 97403
(503) 869-8513