Concurrency, Parallelism, and High-Performance Computing