技术,生活,随看 \随转
高性能计算 = 高性能的算法 + 高性能的软件系统 + 高性能的硬件。文章介绍了高性能计算从Easy到 Lunatic不同难度的学习路线,和相关的程序性能分析、OpenMP、MPI、高性能集群、计算机体系结构等的基本知识点(没有展开)
在遇到线程安全问题的时候,我们会使用加锁机制来确保线程安全,但如果过度地使用加锁,则可能导致锁顺序死锁(Lock-Ordering Deadlock)。或者有的场景我们使用线程池和信号量来限制资源的使用,但这些被限制的行为可能会导致资源死锁(Resource DeadLock)。这是来自Java并发必读佳作 Java Concurrency in Practice 关于活跃性危险中的描述。
我们知道Java应用程序不像数据库服务器,能够检测一组事务中死锁的发生,进而选择一个事务去执行;在Java程序中如果遇到死锁将会是一个非常严重的问题,它轻则导致程序响应时间变长,系统吞吐量变小;重则导致应用中的某一个功能直接失去响应能力无法提供服务,这些后果都是不堪设想的。因此我们应该及时发现和规避这些问题。
其中包括经典算法模型和技术,各类工具、数据集的参考学习,并尝试用浅显易懂的语言,把每个模型或者算法解释清楚。