🦀 SUSTCSC 2025 - Rust高性能计算大冒险!
作者: Ben Chen
INFO
你说得对,但是 Rust 是由 Mozilla 自主研发的一款全新的编译期格斗游戏。编译将发生在一个被称作「Cargo」的构建系统中。在这里,被引用的指针将被授予「生命周期」之力,导引对象安全。你将扮演一位名为「Rustacean」的神秘角色, 在与「Rustc」的搏斗中邂逅各种骨骼惊奇的傲娇报错。征服她们、通过编译同时,逐步发掘「C++」程序崩溃的真相.
🔐 密码学冒险:量子怪兽来袭!
想象一下,数字世界的末日正在逼近!几年前,量子计算机还只是科幻小说里的东西,就像飞行汽车一样遥不可及。但现在,这些计算界的"超级赛亚人"已经破壁而出!这些量子怪兽们带着他们的超能力,正对我们可怜的加密系统虎视眈眈,它们能轻松秒杀目前保护你银行账户和猫咪照片的大多数加密算法!
但别慌!人类密码学家们早有准备,他们开发了抗量子盾牌——其中最酷的一项就是带误差学习(Learning with Errors,简称LWE,听起来就很高大上对不对?)。
LWE问题就像是一个超级迷宫:给你一大堆带"噪音"的线性方程,挑战你找出隐藏在迷雾中的秘密向量
解码一下这个神秘配方:
是一个魔法矩阵(格基矩阵,就像迷宫的地图) 是捣蛋的噪声向量(想象成迷宫里随机出现的假墙和陷阱) 是你看到的最终结果(被施了魔法的密文)
当噪声像忍者一样小而隐秘时,即使是量子超级计算机也会抓狂好一阵子才能解开这个谜题。这个问题被称为NP难问题——计算机科学界的"终极BOSS"级别!
而这个魔法体系最炫酷的地方是它能实现全同态加密(FHE)!想象一下:你可以把数据锁在一个透明但牢不可破的盒子里,然后别人可以在不打开盒子的情况下帮你处理里面的数据!就像这样:
简单来说,你有两个加密数据
(^1): 这是密码学中的一个假定,专业点说就是CCA/CPA安全性。但你只需要知道,这很神奇就对了!
🎮 FHE版生命游戏:加密世界中的微型宇宙!
警告:现有的FHE系统慢得像乌龟赛跑,这个挑战会让你体验到什么叫"等待也是一种艺术"!
康威生命游戏是1970年由英国数学家John Horton Conway发明的细胞自动机,被称为"零玩家游戏"——一旦开始,你就只能作为上帝般的旁观者了!这个微型宇宙有一套残酷而有趣的生存法则:
- 孤独致死法则:活细胞周围朋友少于两个,就会孤独而死(就像没人点赞的社交媒体账号)
- 舒适生存法则:有两到三个邻居的活细胞能愉快地活到下一代(社交圈刚刚好)
- 拥挤窒息法则:超过三个邻居的活细胞会因太热闹而死亡(想象一下被粉丝团团围住的感觉)
- 神奇复活法则:死细胞周围正好有三个活细胞时,突然就活了!(三位好友的能量唤醒了沉睡的灵魂)
现在,我们要在FHE的魔法保护下运行这个小宇宙!整个过程像是一场精心策划的间谍行动:
- (客户端)创建一个
大小的神秘网格,格子里的生命体要么活着(1)要么挂了(0) - (客户端)用LWE魔法加密整个宇宙,然后悄悄地把这个"看不懂的密码包"传送到服务器
- (服务器)在完全看不懂内容的情况下,对这个加密宇宙进行演化,就像蒙着眼睛做手术!
- (客户端)解密后查看结果,确认服务器没有搞砸这个小宇宙的命运
你的终极任务:给这个龟速FHE系统[^2]装上火箭推进器!由于FHE计算比普通计算慢几个数量级(真的很夸张),你需要施展你的代码魔法和_编译_奇技淫巧,让这个系统能在我们有生之年跑起来!
(^2):系统包括客户端、服务器代码和FHE库,你可以理解为"整个魔法工具箱"。
🛠️ 你的战斗装备
⚠️ 特工备忘录: 需要使用nightly版本的实验性武器?想要修改标准战场环境?请立即向总部报告! 所有环境变更会通过官方加密频道(群聊)广播。记得提交你的定制环境
Dockerfile
, 否则我们会用标准装备运行你的代码(可能会错过你精心设计的性能秘技)。
完整军备手册请阅读:https://sustcsc25.benx.dev/setup/00-overview.html
装备出现故障?别急,随时联系我们的后勤支援小组!我们有专业的技术人员待命。
📜 游戏规则与挑战场地
除了神圣不可侵犯的评测代码外,所有代码都必须用Rust编写!你可以从crates.io的百宝箱中寻找任何宝藏(库)来助你一臂之力。 评测代码main.rs
是裁判,不能动它一根汗毛,但其他代码?尽情发挥你的创造力吧!
我们将在南科大超级计算平台的电子角斗场测试你的代码:
- 一台装备了Intel Xeon Silver 4314 (2.40GHz * 20核 * 2插槽)的超级战士
- (或者)一台更强悍的Intel Xeon Platinum 8175M (2.5 GHz * 24核 * 2插槽)霸王战机
- 没有GPU等外挂装备(纯CPU的硬核挑战!)
⚙️ 秘密武器锻造台
你的代码会在这些神秘的咒语下被锻造:
opt-level = 1
(基础优化魔法)-C target-cpu=native
(这是神器核心,不可更改)
你觉得调整编译参数能让武器更锋利?大胆尝试吧,未来的编译魔法师!✨
想尝试nightly版本的黑魔法?没问题,但记得在卷轴(README或报告)中写清楚,否则我们可能无法正确释放你的魔法!
🚫 禁忌咒语
警告:unsafe代码就像黑魔法,威力强大但容易反噬!请谨慎使用~
绝对禁止的行为:
- 移除FHE加密/解密(这相当于在比赛中作弊)
- 使用命令行外部工具召唤援军(但允许通过FFI结盟)
- 这样做可能会在我们的领域中施法失败
- 记得更新你的法术书
Cargo.toml
和配方说明
你可以尝试的高级魔法:
- 插入内联汇编代码(相当于古老的符文魔法),但要确保目标CPU能理解这些符文
🏆 挑战关卡与奖励积分(86%)
关卡 | m (宽) | n (高) | 演化步数 | 时间挑战(s) | 奖励点数 |
---|---|---|---|---|---|
0 | 3 | 3 | 1 | 7.0 | 2 |
1 | 5 | 5 | 1 | 10.0 | 3 |
2 | 5 | 5 | 2 | 15.0 | 5 |
3 | 7 | 7 | 2 | 21.0 | 7 |
4 | 7 | 7 | 4 | 39.0 | 9 |
5 | 8 | 10 | 4 | 70.0 | 11 |
6 | 10 | 12 | 4 | 96.0 | 13 |
7 | 15 | 15 | 4 | 128.0 | 17 |
8 | 17 | 17 | 5 | 196.0 | 19 |
终极大奖 | 86 |
每个关卡都是一场与时间赛跑的冒险!系统会给你一个 verify
函数高兴地返回true
时,你才能获得该关卡的宝贵积分! (想象一下计时器滴答作响的紧张感...)
📝 冒险日志要求(14%)
每位勇者需提交一份冒险日志(学术界称之为"报告"),可用中文或英文书写,必须是PDF格式(可通过
- 你的奇思妙想:算法改良、CPU硬件压榨、性能黑魔法等
- 你的战斗分析:代码剖析图、火焰图等性能图表(让人一目了然的那种)
别忘了像学者一样列出你的灵感来源!无论是古籍(学术论文)、百科全书还是旅行者笔记(博客)。
日志将接受三位贤者的评判:
- 💡 创新大师(5分):评判你的奇思妙想
- 照抄别人的咒语(未引用)→ 0分(这是盗窃魔法的行为!)
- 改良现有魔法 → 1-4分(根据改良程度评分)
- 创造全新魔法(那种让其他法师目瞪口呆的)→ 5分(你将被载入魔法史册!)
- 🎯 表达宗师(5分):评判你讲故事的能力
- 胡言乱语,前后矛盾 → 0分(连你自己都不知道你在说什么)
- 内容丰富但晦涩难懂 → 1-4分(像读天书一样需要破译)
- 清晰明了又全面 → 5分(就像听一个好故事!)
- 🎨 视觉大师(4分):评判你的图表艺术
- 纯文字墙,毫无视觉元素 → 0分(读者表示眼睛好累)
- 有图表但主要是复制粘贴或设计粗糙 → 1-3分(至少有点彩色...)
- 自制精美图表,直观展示复杂概念 → 4分(简直可以办画展了!)
⚔️ 终极挑战: 粉碎LWE(50%额外积分!)
🚨 极密情报: 想获得传说中的Rustacean勋章?完成这个任务是必经之路! 警告:这可能是你面对过的最棘手的谜题之一~
听好了,铁锈战士们!接下来的任务只为真正的密码学勇者准备。是时候用你的Rust神技来撼动密码学界的基石——LWE问题!
你的终极使命,如果你选择接受的话:用Rust实现一个能够破解LWE难题的超级解码器。
两条路摆在面前:调教现有的解码器让它跑得更快,或者从零打造一个前所未有的解码神器。 无论选择哪条路,我们都将用速度和准确度来衡量你的成就。
关卡 | 维度(n) | 方程数(m) | 模数(q) | 误差率(α) | 宝藏积分 |
---|---|---|---|---|---|
0 | 10 | 100 | 97 | 0.005 | 2 |
1 | 20 | 400 | 193 | 0.005 | 3 |
2 | 30 | 900 | 389 | 0.005 | 5 |
3 | 40 | 1500 | 769 | 0.005 | 7 |
4 | 45 | 1700 | 12289 | 0.005 | 9 |
5 | 50 | 2500 | 1543 | 0.005 | 11 |
6 | 55 | 3600 | 6151 | 0.005 | 13 |
终极奖励 | 50 |
每个解答的准确度通过这个神秘公式判定:
(零误差才是真英雄!)
整个任务将在30分钟的倒计时中进行,像真正的电影黑客一样与时间赛跑!成功破解的额外积分将直接加入你的最终荣誉分数,让你在排行榜上独领风骚!
📮 提交你的冒险成果
将你的代码宝藏和探险日志通过以下方式提交:
- 打包成一个神秘宝箱(
tar
、gzip
、zip
或7z
格式) - 或者分享你的公开宝库链接(fork的仓库)
你的宝藏地图应该类似这样:
/sustcsc25-rs-<你的冒险小队ID>
├── Cargo.lock
├── Cargo.toml # 魔法配置文件 *
├── Dockerfile # 可选,用于构建你的专属魔法环境 *
├── src # 你的咒语宝库
│ ├── bonus # 终极挑战的代码
│ │ ├── Cargo.toml
│ │ └── *.rs
│ ├── client.rs # 客户端魔法 *
│ ├── server.rs # 服务器魔法 *
│ └── main.rs # 神圣不可侵犯的评判之眼(我们会忽略你的版本)
└── README.md # 你的冒险指南(如何运行你的代码)
* 这些卷轴可以自由修改
更多冒险准备工作:https://handicraft-computing-team.github.io/sustcsc-doc/pages/intro/basic.html
🧙♂️ 秘传法术提示
想要获得强力优化法术?查阅古老卷轴:https://sustcsc25.benx.dev/lwe/01-hints.html
Rust速成魔法学院入门:https://sustcsc25.benx.dev/rustup/00-first-look.html
📚 远古典籍与魔法书
- tfhe-rs - 全同态加密的现代魔法书
- CPU上的Rust数值计算 - 性能魔法师的秘传配方
- 达姆施塔特密码学学院的LWE挑战 - LWE大师的试炼场
- Rust中的LLL实现 - 格基规约的奥秘
- LWE攻击方法 - 破解LWE的终极宝典
致谢
本文由Claude生成,如有雷同纯属巧合。