Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jcmfernandes/javartm
Java library for Restricted Transactional Memory
https://github.com/jcmfernandes/javartm
Last synced: 14 days ago
JSON representation
Java library for Restricted Transactional Memory
- Host: GitHub
- URL: https://github.com/jcmfernandes/javartm
- Owner: jcmfernandes
- License: lgpl-3.0
- Created: 2013-01-29T19:50:41.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2013-08-04T20:58:17.000Z (over 11 years ago)
- Last Synced: 2024-10-28T01:11:29.692Z (about 2 months ago)
- Language: C
- Size: 118 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
# javartm library README
The javartm library allows Java/JVM users to use the "Restricted Transactional Memory" support available on some Intel CPUs. See [here][inteltsx] for more details.
In practice, this allows code running on the JVM to enjoy the benefits of Hardware Transactional Memory.
javartm is distributed under the terms of the GNU LGPLv3; see the COPYING and COPYING.LESSER files for more details.
## Hardware Requirements
As of this writing only CPUs based on the Intel Haswell architecture include the necessary hardware for RTM. See [here][inteltsx] for Intel's announcement, and [here][tsxspecs] for the specifications.
Testing on other CPUs can be done using the [Intel Software Development Emulator][intelsde].
## Building
Building is done with ant, and requires the [ant-cpptasks][ant-cpptasks] library.
Note that the `ant-contrib-cpptasks` package in Ubuntu is not installed to the right place, and ant will not be able to use it automatically. (To fix it, run `sudo ln -sf /usr/share/java/ant-contrib-cpptasks.jar /usr/share/ant/lib/.`)
Building also requires gcc >= 4.8, as this is the first version that adds support for the RTM instructions. It might be possible to use icc or others (feedback on this is appreciated).
As of this writing, there is no stable release of gcc 4.8 --- you will need to obtain or build your own.
I plan on providing binary packages of javartm soon. If they aren't up yet, feel free to mail me to ask for one.
## Testing with Intel SDE
The script `scripts/runtest.sh` runs a very simple test of javartm using the Intel SDE.
## Who am I
My name is [Ivo Anjo][insthome] and I am a PhD student working on Software Transactional Memory and Speculative Parallelization at the [Software Engineering Group][eswweb] (ESW) at INESC-ID Lisboa.
Feel free to contact me about javartm at .
Some other software I am involved with and that might interest you is the [Java Versioned Software Transactional Memory (JVSTM)][jvstm], a Java library implementing TM and the [Fénix Framework][fenixf], a framework for building web-applications combining transactional memory and persistence.
Thanks for reading this far! :)
[inteltsx]: http://software.intel.com/en-us/blogs/2012/02/07/transactional-synchronization-in-haswell
[intelsde]: http://software.intel.com/en-us/articles/intel-software-development-emulator
[tsxspecs]: http://software.intel.com/sites/default/files/m/9/2/3/41604 "Intel Architecture Instruction Set Extensions Programming Reference"
[ant-cpptasks]: http://ant-contrib.sourceforge.net/cpptasks/index.html
[insthome]: https://fenix.ist.utl.pt/homepage/ist155460
[eswweb]: http://www.esw.inesc-id.pt/cgi-bin/moin.cgi
[jvstm]: http://esw.inesc-id.pt/git/jvstm.git/
[fenixf]: https://fenix-ashes.ist.utl.pt/trac/fenix-framework