Everything about Testing high-performance computing applications
High-performance computing applications run on massively parallel supercomputers consist of concurrent programs designed using multi-threaded, multi-process models. The applications may consist of various constructs with varying degree of parallelism. Although high performance concurrent programs use similar design patterns, models and principles as that of sequential programs, unlike sequential programs, they typically demonstrate non-deterministic behavior. The probability of bugs increases with the number of interactions between the various parallel constructs. Race conditions, data races, deadlocks, missed signals and live lock are common error types. Wikipedia →
đź§ Start here: a 6-step reading path
- Read the overview: Testing high-performance computing applicationsA 5-minute orientation
- Pick up a classic book: Software EngineeringThe most-reprinted book on the subject
- Go sideways: HeisenbugA closely related topic
- Go sideways: Concurrent testingA closely related topic
đź“– Definitions
No dictionary entry for this exact phrase.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
- No matching papers found.
📚 Books worth reading
Software EngineeringRoger S. Pressman, Bruce Maxim · 1982- 📕MedicareUnited States. General Accounting Office · 1986
C How to ProgramPaul J. Deitel, Harvey M. Deitel · 2007
Neural Information ProcessingTingwen Huang · 2012
Unix System Administration HandbookEvi Nemeth, Garth Snyder · 1989
Microprocessor Architecture, Programming, and Applications with the 8085Ramesh S. Gaonkar · 1996
Treaty Occupationay ToxicologySuelen Queiroz · 2010
Understanding object-oriented programming with JavaTimothy Budd · 1998
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
đź”— Related topics
- Heisenbug In computer programming jargon, a heisenbug is a software bug that seems to disappear or alter its behavior when one attempts to study it. The term is…
- Concurrent testing Research and literature on concurrency testing and concurrent testing typically focuses on testing software and systems that use concurrent computing.…
- Thread (computing) In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which…
- Automatic parallelization Automatic parallelization, also auto-parallelization or autoparallelization, is a compiler optimization in which a compiler or other software tool transforms…
- Jinx Debugger Jinx was a concurrency debugger that deterministically controlled the interleaving of workloads across processor cores, focusing on shared memory interactions…
- Race condition A race condition or race hazard is the condition of an electronics, software, or other system where the system's substantive behavior is dependent on the…
- Debugging In engineering, debugging is the process of finding the root cause, workarounds, and possible fixes for bugs. For software, debugging tactics can involve…
- Concurrent computing Concurrent computing is a form of computing in which several computations are executed concurrently—during overlapping time periods, instead of sequentially—wit…