发现自己看过的很多篇检测Java Concurrency Bug的文章,都会用Java Grande benchmark(特别是其中的RayTracer)作为实验对象。例如下面两篇文章:
S. Park, R. W. Vuduc and M. J. Harrold, "Falcon: fault localization in concurrent programs," in Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1, Cape Town, South Africa, 2010, pp. 245-254.
F. Sorrentino, A. Farzan and P. Madhusudan, "PENELOPE: weaving threads to expose atomicity violations," in Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering, Santa Fe, New Mexico, USA, 2010, pp. 37-46.
但是发现Java Grande benchmark的页面组织稍微有些混乱,所以这里简单总结一下:
Java Grande benchmark的实验室项目页面是:
http://www.epcc.ed.ac.uk/research/java-grande/
其中有一个链接:
http://www2.epcc.ed.ac.uk/computing/research_activities/java_grande/index_1.html
是Java Grande benchmark的下载地址,上面页面中的
Multi-threaded Benchmarks
就是下载Concurrency类Object的地方,其中下载了"jgf_threadv1.0.zip"后,RayTracer就位于文件夹:\jgf_threadv1.0\threadv1.0\section3\raytracer 中。
上面页面中又链接到了:http://www.javagrande.org/ 这是Java Grande Forum的页面,但是似乎已经好久没有更新过了。
另外,还有一个页面是 http://www.dhpc.adelaide.edu.au/projects/javagrande/benchmarks/ 是对原有数据集的补充,但是具体两者之间的关系暂时还没搞清楚。
这篇就简单记录这么多,主要方便想使用RayTracer等Object进行实验的童鞋。