# hpc101 **Repository Path**: chen_yu_kong/hpc101 ## Basic Information - **Project Name**: hpc101 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-25 - **Last Updated**: 2026-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 欢迎来到 HPC 101 超算短学期 ## 课程信息 HPC 101 是浙江大学超算队开设的一门短学期课程,旨在帮助同学走进 Linux 和 HPC (高性能计算) 的世界,了解 HPC 领域的基本概念、超算的体系结构、编程技术等。 课程的正式名称是“课程综合实践 Ⅰ”,课程代码为 CS1030M,学分为 2.5 学分。 HPC 101 可以用来申请替代计算机学院非计科专业的短学期课程。 !!! tip 因为本年度课程人数激增,因此有一些 Tips 给同学们: 1. 硬件资源有限,在假期里请不要松懈学习。两周的课程结束后是持续两个月的各个 Lab,请合理分配时间,不要当 DDL 战神,否则结果就是在 DDL 前对着集群上无尽的任务队列抱头痛哭。 2. 我们非常提倡同学们积极交流,可以直接在课程群内与大家交流各种问题(询问或帮助解答),只要不直接把自己的做法开源就行。也可以私戳负责对应 Lab 的助教,在课后如果有疑问也可以抓着老师和助教解决。我们的课时仅能够帮同学们引进门,接下来两个月的 Lab 极其考验同学们的自学能力。 3. 合理使用 AI 提高效率,不依赖和盲从 AI。HPC 是比较硬核的领域,语料库很难覆盖到,因此 AI 可能不太帮得上你。你也应当为它提供相关的专业的文档作为 Prompt。 4. 请养成认真阅读文档的习惯。在这段时间里,我们发现不少同学的问题在文档中都有解答。在 HPC101 这门课,实验文档由助教测试过,也从历年与同学们的交流中补充了很多 Tips。我们的文档质量和阅读舒适程度应该是校内课程顶尖的。所以也请同学们用心阅读。如果你发现文档有问题,可以直接提出/在 GitHub 开 Issue/提 Pr。 5. 在提交文件的时候,尽管我们没有明确要求文件名格式,但还是希望同学们养成整理好文件名的习惯,这对于未来联系导师、投递实习简历都是有益的。我们在整理众多叫 “个人简历(1)(2).docx” 的文件时,也很难避免出现一些纰漏。但倘若改成 `324010xxxx_xxx_个人简历.pdf`,就非常清晰明确。 6. 因为人数过多,我们会对代码进行适当查重。如果你独立完成,那么你肯定会有疑难和心得体会,这些可能作为我们反作弊的参考依据。我们希望看到同学们排版整洁、逻辑清晰的报告~ ### 选课报名 !!! warning "本课程不设置在选课系统中,有意的同学务必提前报名" 本课程将在二轮选课后通过教学科直接将名单导入选课系统,不可以在选课系统中直接选课。 有意选本课程的同学请不要在一轮二轮选课时选择其他 “课程综合实践Ⅰ” 课程,以免系统中出现冲突。 被筛选的的同学仍可以参与其他课程的补选,我们会和教学科一起帮助你选课,不必担心没有课上。 !!! bug "选课报名已经截止" 请填写这份钉钉问卷:[HPC101 2026 报名表](),务必仔细阅读问卷填写说明,确保填写的信息准确无误。问卷内容包括: - **个人信息**:学号等信息由钉钉自动收集。 - **联系方式**:QQ、电话号码等。 - **个人简介(填写文本框)**: - **计科专业同学**:请简要介绍自己的技术栈、编程能力和经验、对 HPC 的了解程度等。 - **非计科专业同学**:请简要介绍自己的专业背景、编程能力、对 HPC 的了解程度等。 - **实验报告(PDF 文件)**: - **必须**完成 [Lab 0 Linux Crash Course](lab/Lab0-LinuxCrashCourse/index.md) 并提交实验报告。 - **建议**完成 [Lab 1 MiniCluster](lab/Lab1-MiniCluster/index.md) 并提交实验报告。 !!! tip - 如果实验遇到困难,请及时在课程交流群内提问或私戳助教。 - 如果因为时间安排等原因无法全部完成,可以提交部分完成的实验报告。 我们会优先考虑实验完成度高的同学,而且实验本身是作为短学期的一次作业使用的。欢迎大家踊跃报名! ### 课程安排 - 上课时间: - 上午 8:30 开始,下午 14:00 开始,课时均为 3 个小时 - 大部分时间只有半天有课,没课的时间不用到教室,课程前 6 小时有群内钉钉助手提醒 - 上课地点:紫金港校区北 3-310 | 日期 | 上午(08:30 - 11:30) | 下午(14:00 - 17:00) | | ---------- | ---------------------------------- | ------------------------------------------- | | 6 月 25 日 | 超算概述(陈建海老师) | 超算概述(陈建海老师) | | 6 月 26 日 | - | 集群软硬件及运维基础(郝星星) | | 6 月 27 日 | - | HPC 中的计算机系统 - 1(李晨潇) | | 6 月 28 日 | - | HPC 中的计算机系统 - 2(何水兵老师/宋浩喆) | | 6 月 29 日 | - | - | | 6 月 30 日 | - | 向量化并行计算基础(陈宏哲) | | 7 月 1 日 | Cuda C 编程基础(王则可老师/孙杰) | Cuda C 编程基础(王则可老师/孙杰) | | 7 月 2 日 | OpenMP/MPI 并行计算基础(李晨潇) | C++ 并行程序设计(朱宝林) | | 7 月 3 日 | 高性能计算高级话题(王则可老师) | - | | 7 月 4 日 | - | - | | 7 月 5 日 | - | 性能分析技术基础 Profiling(刘烨) | | 7 月 6 日 | 机器学习基础(林熙) | 机器学习基础(林熙) | | 7 月 7 日 | - | 机器学习高级话题(张寅老师) | !!! danger "实验安排" 下面的时间表并不是最终的时间表,**具体情况请以钉钉群内通知和学在浙大为准!** 如果 Lab 发布时间有延迟,截止时间也会对应延后,请大家放心。 !!! tip "Bonus 分数计算" 每个实验会设置 Bonus 任务,Bonus 分数会添加在该实验的分数中。 Lab 2.5 (可选做) 是 Lab 2 的延伸,与 Lab 2 本身的 Bonus 不同,Lab 2.5 的分数会添加在全部实验的总分中。 !!! warning "迟交政策" 在各实验的截止时间后再提交作业,将会在正常评分的基础上,扣除相应分数。具体扣分规则如下: 按照每天5%的扣分率计算,时间细化到每小时,不足一小时按一小时计算,即每小时扣除0.2083%的分数。 迟交将会对你的成绩不利,请务必按时提交作业。如果有特殊情况,请提前联系助教,事后再联系的不予认可。 如果迟交导致的扣分达到100%或不提交,则该实验的作业成绩记为0分。 | 实验名称 | 助教 | 开始时间 | 截止时间 | | -------- | ---------------------- | ----------- | ----------- | | Lab 1 | 郝星星 | 2025-06-25 | 2025-07-03 | | Lab 2 | 陈宏哲, 刘烨, 洪奕迅 | 2025-07-01 | 2025-07-22 | | Lab 2.5 | 李晨潇, 刘烨, 洪奕迅 | 2025-07-07 | 2025-08-25 | | Lab 3 | 陈楷骐, 郝星星, 任朱明 | 2025-07-16 | 2025-08-06 | | Lab 4 | 李晨潇, 黄钰, 周俊康 | 2025-07-30 | 2025-08-13 | | Lab 5 | 林熙, 茅晋源, 尤傲 | ~2025-08-11 | ~2025-08-25 | | 大作业 | 蒋翼泽, 李厚融, 杨星宇 | 2025-07-13 | 2025-08-31 | [gantt month-format="%b"(docs/index.assets/lab_gantt.yaml)] ### FAQ !!! question "感觉自己编程基础比较弱,适合选这门课吗?" 大一期间,同学们一般都已经修过 **C 语言课程**(如《C 程序设计》和《数据结构基础》),具备一定的 C 语言基础。在超算短学期中,我们将接触的几种并行编程框架(如 **CUDA、MPI 和 OpenMP**)都是基于 C/C++ 语言的。只要你在这些课程的学习情况不是太差,就已经具备了修读本课程的**基础编程能力**。 !!! question "有什么预修要求/我需要做什么准备吗?" 如上所述,只需要有 **C 语言基础**即可。我们理解大家临近期末课业繁重,**Lab 1 的报告仅作为报名时的可选项**。这个 Lab 的目的是让大家提前熟悉 **Linux 系统和集群环境**,了解高性能计算中软件的编译和运行模式,这些内容在短学期课程中都会详细讲解。如果在 Lab 中遇到困难,请善用 **Google、Stack Overflow** 等搜索引擎,学会阅读官方文档(Read The Manual),这些技能会极大提升你的计算机学习能力。如果有余力,推荐阅读 Peter Pacheco 的《**并行程序设计导论**》,其中介绍的 **MPI/OpenMP** 是我们将要学习的重要内容。此外,**Python 编程能力**对修读本课程及其他短学期课程(如 AAA)也非常有帮助,建议加入学习计划。 !!! question "担心自己和“大神”差距很大怎么办?" 不必担心。内容和形式对于大家来说都是**全新的**,几乎没有同学在大一及之前就接触过并行编程。大家基本都处于**同一起跑线**,主要差异在于编程语言的熟练程度,这会影响学习速度,但不会影响最终的学习成果。以往的经验来看,无论是否有 OI 基础,大家都能跟上进度。短学期的时间安排较为宽松(但请不要因此放松),大约**两周高密度学习**,之后有**两个月时间逐步消化并完成各个 Lab**,最后组队完成 Project。这样的安排也与超算竞赛的形式类似:与 CTF、ACM 等短时竞赛不同,**HPC 竞赛通常持续数月甚至半年**,有充足时间自主安排、深入研究、团队合作。我们也鼓励大家在学习过程中**多交流、互相帮助**。 !!! question "课程有名额限制吗?" 教学科没有明确的名额限制,但我们会根据报名情况进行筛选。 !!! question "硕博可以选吗?" 可以,同样由教学科导入系统。 !!! question "其他专业可以选吗?如何替换本专业培养方案的课程?" 可以,一般是算作个性化学分。如果需要替换本专业培养方案的课程,请联系教学科确认。 替换流程一般为:课程结束后在教务系统上免修申请(拿到学分后随时可申请),一般是学期初审核。 !!! question "可以旁听吗?" 如果你因为时间冲突等原因无法选课,但仍然希望旁听课程内容,可以: - 在智云课堂上旁听该课程。 - 通过课程仓库获取课程资料,我们会将实验文档、部分课件和代码等资料同步到本仓库。 - 欢迎加入课程交流群,我们会在群内同步课程消息。 如需申请集群账户以便进行实验和练习,请同样填写报名表,并选择“旁听”选项。由于集群计算资源有限,我们将同样根据报名情况进行筛选。 我们为旁听同学提供实验环境,但不负责批改旁听同学实验报告。关于 OJ 评测等,与正常选课的同学共享 DDL,Lab 截止后可能无法继续提供环境支持。 如果在做 Lab 过程中遇到问题或有其他疑问,欢迎在交流群内提问或私聊助教,我们会尽力解答。 ## 导言:Hello HPC World 第一次听到 HPC 这个词,你是不是觉得很陌生?没关系,我第一次听到时也是一头雾水。几乎没有学生在学习这门课程之前了解过 HPC,这是一个相对陌生的领域。在这门课程中,我们会一步步地带你走进 HPC 的世界,带你了解这个领域的基础知识和技术,带你感受到 HPC 的魅力。 !!! quote inline end ""  最快的超级计算机 Frontier 每秒能提供 $10^{18}$ 次浮点运算,相当于 $10^6$ 张 4090 显卡。 ### HPC 是什么? HPC 是 High Performance Compute 的缩写,意思是高性能计算,通常是指通过**聚合计算能力**来提供比传统计算机或服务器更强大的计算性能,处理海量多维数据集(大数据),并以极高的速度解决复杂问题。HPC 系统的运行速度通常要比最快的商用台式机、笔记本电脑或服务器系统快一百万倍以上。 标准计算系统主要使用**串行计算**来解决问题,它将工作负载分成一系列任务,然后在同一处理器上依次执行这些任务。相比之下,HPC 则利用以下技术来提高计算速度: - **大规模并行计算**。并行计算是在多个计算机服务器或处理器上同时运行多个任务。大规模并行计算则是使用数万到数百万个处理器或处理器核心的并行计算。 - **计算机集群**(也称为 HPC 集群)。HPC 集群由多个联网的高速计算机服务器组成,并有一个集中式调度器来管理并行计算工作负载。这些计算机被称为节点,可能会使用高性能多核 CPU,如今更有可能使用 GPU(图形处理单元),它们非常适合处理严格的数学计算、机器学习模型和图形密集型任务。单个 HPC 集群可能包括 100,000 个或更多节点。 - **高性能组件**:HPC 集群中的所有其他计算资源(网络、内存、存储和文件系统)都是高速、高吞吐量、低延迟组件,可以与节点同步,优化集群的计算能力和性能。 下图展示了一个典型的 HPC 集群架构:  HPC 提供的超高性能,使得它在很多领域都有着广泛的应用。随着 AI 技术的发展,**HPC 应用也已成为 AI 应用的代名词**,尤其是机器学习和深度学习应用。HPC 应用正在推动以下领域的持续创新: - 科学研究。HPC 在科学研究中的应用包括气候建模、天气预报、宇宙学、地震学、生物学、物理学、化学、材料科学和地球科学。这些学科需要处理大量数据、进行复杂的模拟和建模,以及进行大规模的数据分析。 - 医疗保健、基因组学和生命科学。人类基因组测序的首次尝试耗时长达 13 年;而如今,HPC 系统可以在不到一天的时间内完成这项工作。在医疗保健和生命科学领域,HPC 的其他应用还包括药物发现和设计、癌症快速诊断和分子建模。 - 金融服务。除了自动交易和欺诈检测,HPC 还支持蒙特卡罗模拟和其他风险分析方法的应用。 - 政府和国防。在这一领域,两个日益增长的 HPC 用例是天气预报和气候建模,这两个用例都涉及处理大量的历史气象数据和气候相关数据点每日数百万次的变化。其他政府和国防应用包括能源研究和情报工作。 - 能源。能源相关 HPC 应用包括地震数据处理、油藏模拟和建模、地理空间分析、风场模拟和地形测绘。 ### 在这个短学期课程中,你会学到什么? 在这门课中,你能够学习到的知识和技能大致如下: