EPYC 服务器选购实战与经验分享
前言
自从开始读 Ph.D. 之后,对算力的要求逐步增长,因此一直想购入强劲的服务器用于科研玩装机,感谢近几年的 AMD 强势,我居然只用了大概 4 万元就拿下了两台 EPYC 7B13 64C128T + 1T 内存的工作站,这篇文章就来简单分享一下整个实战过程和一些经验。
自从开始读 Ph.D. 之后,对算力的要求逐步增长,因此一直想购入强劲的服务器用于科研玩装机,感谢近几年的 AMD 强势,我居然只用了大概 4 万元就拿下了两台 EPYC 7B13 64C128T + 1T 内存的工作站,这篇文章就来简单分享一下整个实战过程和一些经验。
总算是通过了 ETH Zurich Master in Computer Science 除了毕设外最后一门课,借着这个机会来介绍一下这个项目的体验还有课程评价。
(下文会用 MSCS
来代替 ETH Zurich Master in Computer Science
)
Datalog 是一种由 Prolog 分化而来的逻辑编程语言,相比 Prolog 最大的不同在于 Datalog 对于语法做出了很多限制因此是非图灵完全的,然而 Datalog 仍然在数据库和程序分析中有着广泛的应用。Souffle 是 Datalog 的高效实现之一,之前在北大熊英飞老师的公开课上曾经见过但是那个时候不理解也不太会写,最近修程序分析的时候又一次遇到,大作业被迫写了一千多行,因此本文就是用来记录一下 Souffle 编程的经验。
本文的代码可以在 Souffle 的在线编译器中运行。
For English version of this post, see this.
For English version of this post, see here.
一般来说,一个用 C 写的库可能会暴露接收一个函数指针作为回调函数,比如:
1 | typedef void (*callback_t)(void* data); |
然后我们可能会这样使用这个接口:
1 | typedef struct Context { |
但是这样仍然不太方便,因为我们需要手动管理 data 指针的生命周期,一不小心就有可能会内存泄漏。
最近研究 Chromium 和 HTML 标准,不可避免的就接触到了 Web IDL,这里就总结性的聊聊吧,也当是学习笔记了。
本文几乎就是照搬现在 Web IDL 的标准,但也不是简单的翻译也翻译不准。