73 lines
2.1 KiB
Typst
73 lines
2.1 KiB
Typst
#import "@preview/minimal-presentation:0.6.0": *
|
||
|
||
// 中文使用思源宋体,英文使用 Times New Roman
|
||
#set text(font: ("Times New Roman", "Source Han Serif SC"))
|
||
#show raw: set text(font: "Fira Code")
|
||
|
||
#show: project.with(
|
||
title: "在科学计算中使用Nix",
|
||
sub-title: "非CS专业人士的使用经验与困难",
|
||
author: "陈浩南",
|
||
date: "2025-08-09",
|
||
index-title: "目录",
|
||
logo: image("./nix-snowflake-colours.svg"),
|
||
logo-light: image("./nix-snowflake-white.svg"),
|
||
cover: image("./DSC_0210.JPG"),
|
||
main-color: rgb("#3e5c98"),
|
||
lang: "zh",
|
||
)
|
||
|
||
= 背景介绍
|
||
|
||
== 个人Linux使用经验
|
||
|
||
- 桌面:2018年起主力使用Linux,Deepin #sym.arrow Arch #sym.arrow Gentoo #sym.arrow NixOS (2023-05-28)
|
||
- 服务器(VPS):差不多时间,OpenWRT #sym.arrow Ubuntu #sym.arrow Arch #sym.arrow Gentoo #sym.arrow NixOS
|
||
- 科学计算(HPC):2020年硕士入组开始接触,Gentoo + Ubuntu #sym.arrow NixOS (2023-09)
|
||
|
||
== 科学计算现状
|
||
|
||
#columns-content(colwidths: (1fr, 1.8fr))[
|
||
#figure(
|
||
image("meme.jpg", width: 100%)
|
||
)
|
||
- *复古*的包管理:手动修改Makefile指定编译器/参数/库路径。
|
||
- *随意*的编程:无视标准、能用就行,C/C++不分,Fortran/MPI只有特定编译器能编译。
|
||
- *闭源*的编译器:Intel OneAPI / NVIDIA HPC SDK。
|
||
- *混乱*的用户权限:超算共用账户,小组随意`sudo make install`。
|
||
]
|
||
|
||
== 我们需要更多的可复现!
|
||
|
||
|
||
#figure(
|
||
image("更多的.png", width: 120%)
|
||
)
|
||
|
||
= 切换到Nix/NixOS后解决的问题
|
||
|
||
== 切换到Nix/NixOS后解决的问题
|
||
|
||
- 方便打补丁、魔改软件,无需研究具体软件的编译流程:
|
||
```
|
||
xxx = prev.xxx.overrideAttrs (prev: patches = prev.patches or [] ++ [ ./my.patch ])
|
||
```
|
||
- 编译/运行环境可复现:
|
||
- “你遇到的问题,网上肯定也有人遇到过。Gentoo除外。”
|
||
- 再也不会忘记自己去年配置的服务是怎么配置的了。
|
||
- 跨服务/跨机器共享配置
|
||
|
||
// TODO:举个例子
|
||
|
||
// TODO: highlight code
|
||
|
||
|
||
= 尚待解决的问题
|
||
|
||
== 尚待解决的问题
|
||
|
||
- 闭源编译器和 stdenv
|
||
- 无root权限安装nix
|
||
- FHSStdenv?
|
||
- impermanence /home-manager 与共享文件系统
|