Where can I download the code from?

You may download the development code from the subversion repository at There is no guarantee that code from the repository is stable, secure, functional or even properly compiling. You may use the website to browse the source code online.

What is the difference between the mpiio, adio, posix roots in the repository?

The MPI-IO implementation is a UPC/IO library implementation developed on top of the already existing MPI I/O facilities. If you are looking to integrate UPC with your currently existing MPI-IO code then this is the library you would want to use. The MPI-IO implementation provides most of the features in the specification, but not all of it.

The ADIO implementation is implemented on top of an abstraction layer that lays on top of POSIX. This version out-performs both MPI-IO and the Berkeley UPC I/O implementation but is quite memory intensive. It also implements most of the specification, but not all of it

The POSIX implementation is currently in a release candidate phase. It is a (relatively) high performance full specification implementation of UPC I/O containing various advanced features including true native asynchronous I/O support, a generic hints system with support for custom system call strategies and more. Feel free to download the release candidate to help us towards the process for the first release.

How do I actually use the mpiio, adio or posix library implementations?

The MPI-IO and ADIO implementations do not support a dynamic threads environment. Their appropriate static libraries or objects will be compiled with a specific thread count. Any application you link to them must be compiled using this same thread count. The POSIX implementation contains details on how to compile libupcio applications for it.

I am getting errors about restrict, what do I do?

Some UPC compilers fail to handle GNU-specific features such as _ _restrict. This can be worked around by specifying -D_ _restrict="" to your UPC compiler. This is not an issue when compiling libupcio but might be experienced by your own applications when building.

How do I use the asynchronous functionality?

It is recommended you use the upcio-config tool whenever possible. For the appropriate build flags specify "upcio-config -build".

The shared functionality appears broken. Why?

For the current release candidate, requests with a block size of 0 will not be handled correctly. This will be fixed in the next release candidate.

Who can I e-mail for other questions?

Please feel free to join the UPC mailing list as listed on the UPC consortium website or contact the library maintainer at apokayi at gwu dot edu.

Your implementation sucks, where do I send bug reports?

We are dedicated to assuring that libupcio will grow into a mature product. If you have found stacks of bugs (or even one bug), please feel free to submit a detailed bug report using the ticket system available on this website (click on the "New Ticket" button).

Last modified 8 years ago Last modified on Mar 1, 2010, 6:19:10 PM