操作系统是计算机专业的核心课,可以说是体现程序员编程技能内功的主要内容。
自己所学的专业也不是正统的计算机科学,而是数学与计算科学,主要方向是算法和计算数学着这一块,而且目前尚处于大二上阶段,操作系统没学,所以遇到好多操作系统相关的概念都非常的困扰。现在趁着在做高性能计算实验这个机会好好的将所遇到的操作系统概念和知识整理出来,现学现用。
多数本科生操作系统的学习,无非就是找本教材从头到尾滚一遍,这样虽然能大致了解整个课程的整体内容,对实际操作功效虽有,但不大。最好的学习方式是,基于一个项目的学习,动手实际操作,活学活用,更助于理解和记忆知识与原理。
好了,废话不多说。开始!
一、超线程
1. 背景:
做NAMD优化时,在官方给出的说明文档中有这么一段
-- Individual Windows, Linux, Mac OS X, or Other Unix Workstations --
Windows, Mac OX X (Intel), and Linux-x86_64-multicore released binaries
are based on "multicore" builds of Charm++ that can run multiple threads.
These multicore builds lack a network layer, so they can only be used on
a single machine. For best performance use one thread per processor
with the +p option:
namd2 +p<pr