JSure for Concurrency
Java on multi-core – speed with safety
JSure is a model-based static analysis tool that helps developers answer this question—
“Are my threads accessing shared state in a safe way?”
JSure provides positive assurance (sound analysis, not rule-based) that correct locks are held when shared state is accessed. This enables programmers to develop confidence that their code is “thread safe” – it satisfies state consistency requirements. Because it is composable, the JSure analysis is scalable to the largest Java systems, and has been proven on large existing code bases. It is supported by a lightweight developer-friendly annotation language that is compatible with JSR 305. JSure is an IDE plug-in, living with developers to provide rapid feedback concerning locking policies as code is written. JSure acts as a safety net as developers work to aggressively parallelize their code for multi-core processors, removing the fear of introducing hard-to-debug race conditions.
Flashlight Dynamic Analysis
Discover potential race-conditions and deadlocks
When developers are in the dark about why their application is experiencing intermittent failures, poor performance, or data corruption, Flashlight is a “special-purpose” runtime profiler that can provide visibility into concurrency issues within the app and illuminate the path to root causes. Flashlight monitors thread behavior, lock usage, and lock contention as threads access shared state over time. Flashlight then allows rich queries into the resulting multi-dimensional data set to determine where potential race-conditions, deadlocks, and performance bottlenecks exist in the code. This helps developers of threaded code better understand the realities of the runtime behavior of their code.
Related Links
|
|
The Multi-Core Challenge
It is reported that, as of February 2008, fewer than 10% of Intel processors shipped are single-core. Over the next few years, billions of multi-core processors will be embedded in mobile phones, TVs, PCs, and other appliances worldwide.
Writing concurrent applications that fully exploit the power of multi-core processors is hard to do correctly, but applications must be multi-threaded in order to keep up with rapidly increasing demand for greater performance.
“For the past 30 years, computer performance has been driven by Moore’s Law; from now on, it will be driven by Amdahl’s Law”
– Doron Rajwan, Intel
JSure and Flashlight were created to help Java developers deal with the multi-core challenge.
“Writing thread-safe code is, at its core, about managing access to state, and in particular, to shared, mutable state.”
– Java Concurrency in Practice, Brian Goetz et al.
|