Skip to content
2025 SUSTCSC Rust
点击任意处继续

🦀 SUSTCSC 2025 - Rust高性能计算大冒险!

作者: Ben Chen

INFO

你说得对,但是 Rust 是由 Mozilla 自主研发的一款全新的编译期格斗游戏。编译将发生在一个被称作「Cargo」的构建系统中。在这里,被引用的指针将被授予「生命周期」之力,导引对象安全。你将扮演一位名为「Rustacean」的神秘角色, 在与「Rustc」的搏斗中邂逅各种骨骼惊奇的傲娇报错。征服她们、通过编译同时,逐步发掘「C++」程序崩溃的真相.

🔐 密码学冒险:量子怪兽来袭!

想象一下,数字世界的末日正在逼近!几年前,量子计算机还只是科幻小说里的东西,就像飞行汽车一样遥不可及。但现在,这些计算界的"超级赛亚人"已经破壁而出!这些量子怪兽们带着他们的超能力,正对我们可怜的加密系统虎视眈眈,它们能轻松秒杀目前保护你银行账户和猫咪照片的大多数加密算法!

但别慌!人类密码学家们早有准备,他们开发了抗量子盾牌——其中最酷的一项就是带误差学习(Learning with Errors,简称LWE,听起来就很高大上对不对?)。

LWE问题就像是一个超级迷宫:给你一大堆带"噪音"的线性方程,挑战你找出隐藏在迷雾中的秘密向量 sZqn。这个魔法公式长这样:

As+e=bmodq

解码一下这个神秘配方:

  • A 是一个魔法矩阵(格基矩阵,就像迷宫的地图)
  • e 是捣蛋的噪声向量(想象成迷宫里随机出现的假墙和陷阱)
  • b 是你看到的最终结果(被施了魔法的密文)

当噪声像忍者一样小而隐秘时,即使是量子超级计算机也会抓狂好一阵子才能解开这个谜题。这个问题被称为NP难问题——计算机科学界的"终极BOSS"级别!

而这个魔法体系最炫酷的地方是它能实现全同态加密(FHE)!想象一下:你可以把数据锁在一个透明但牢不可破的盒子里,然后别人可以在不打开盒子的情况下帮你处理里面的数据!就像这样:

Ae+Be=Ce(A+B)e

简单来说,你有两个加密数据 AeBe,可以直接对它们进行计算,而不用先解密[^1]!这意味着你可以把你的小秘密交给云服务器处理,它能帮你算出结果,但永远猜不到你的数据是什么——这简直就是数字时代的"蒙眼魔术师"!

(^1): 这是密码学中的一个假定,专业点说就是CCA/CPA安全性。但你只需要知道,这很神奇就对了!

🎮 FHE版生命游戏:加密世界中的微型宇宙!

警告:现有的FHE系统慢得像乌龟赛跑,这个挑战会让你体验到什么叫"等待也是一种艺术"!

康威生命游戏是1970年由英国数学家John Horton Conway发明的细胞自动机,被称为"零玩家游戏"——一旦开始,你就只能作为上帝般的旁观者了!这个微型宇宙有一套残酷而有趣的生存法则:

  • 孤独致死法则:活细胞周围朋友少于两个,就会孤独而死(就像没人点赞的社交媒体账号)
  • 舒适生存法则:有两到三个邻居的活细胞能愉快地活到下一代(社交圈刚刚好)
  • 拥挤窒息法则:超过三个邻居的活细胞会因太热闹而死亡(想象一下被粉丝团团围住的感觉)
  • 神奇复活法则:死细胞周围正好有三个活细胞时,突然就活了!(三位好友的能量唤醒了沉睡的灵魂)

现在,我们要在FHE的魔法保护下运行这个小宇宙!整个过程像是一场精心策划的间谍行动:

  1. (客户端)创建一个 m×n 大小的神秘网格,格子里的生命体要么活着(1)要么挂了(0)
  2. (客户端)用LWE魔法加密整个宇宙,然后悄悄地把这个"看不懂的密码包"传送到服务器
  3. (服务器)在完全看不懂内容的情况下,对这个加密宇宙进行演化,就像蒙着眼睛做手术!
  4. (客户端)解密后查看结果,确认服务器没有搞砸这个小宇宙的命运

你的终极任务:给这个龟速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)奖励点数
03317.02
155110.03
255215.05
377221.07
477439.09
5810470.011
61012496.013
715154128.017
817175196.019
终极大奖86

每个关卡都是一场与时间赛跑的冒险!系统会给你一个 m×n 大小的生命网格和指定的演化步数。 只有当你的算法在时间限制内完成任务,并且verify函数高兴地返回true时,你才能获得该关卡的宝贵积分! (想象一下计时器滴答作响的紧张感...)

📝 冒险日志要求(14%)

每位勇者需提交一份冒险日志(学术界称之为"报告"),可用中文或英文书写,必须是PDF格式(可通过LATEX、markdown、Typst或其他神奇工具炼成)。这份日志应记载:

  • 你的奇思妙想:算法改良、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)误差率(α)宝藏积分
010100970.0052
1204001930.0053
2309003890.0055
34015007690.0057
4451700122890.0059
550250015430.00511
655360061510.00513
终极奖励50

每个解答的准确度通过这个神秘公式判定:

误差指数=i=0n1|sis^i|=0

(零误差才是真英雄!)

整个任务将在30分钟的倒计时中进行,像真正的电影黑客一样与时间赛跑!成功破解的额外积分将直接加入你的最终荣誉分数,让你在排行榜上独领风骚!

📮 提交你的冒险成果

将你的代码宝藏和探险日志通过以下方式提交:

  • 打包成一个神秘宝箱(targzipzip7z格式)
  • 或者分享你的公开宝库链接(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

📚 远古典籍与魔法书

致谢

本文由Claude生成,如有雷同纯属巧合。