• PUBG“挖矿”

    PUBG?是的就是你正在玩的《绝地求生:大逃杀》。

    “挖矿”?蓝洞也出区块链骗钱了?呵呵,不是的呢亲。

    TLDR: 自己还是太年轻,赚钱的机会千千万,只是当自己意识到的时候已经错过了末班车。所以啊,还是要提升自己的姿势水平。

    Read on →

  • 那个占着茅坑的线程

    让我们来看看下面这个简单的代码:

    Read on →

  • 分片:简单粗暴细化锁的粒度的通用方法

    引子:Concurrent Hashmap

    假设我们需要一个支持并发的 Hashmap。当然,已经有很多的库实现了这个数据结构,但是这里我们假设我们需要自己编写一个。为了简单起见,我们只支持三种操作:get, putremove

    最朴素的方法

    我们知道 std::unordered_map 是个 Hashmap,但是并不是线程安全的。所以说最简单朴素的方法就是用一个大大的锁锁住它。

    Read on →

  • 熟练使用小工具让自己从机械工作中解脱

    一直以来我都相信熟练地使用各种小工具能大大提升生产力,把人们从无聊的机械工作中解脱出来。昨天我就在做一些无聊的机械工作,正好这些技能就派上了用场。我觉得可以把它分享出来,或许就会有年轻人被安利了。

    Read on →

  • 为实验室建立公用GPU服务器

    需求的产生

    现在深度学习风生水起,为了满足人民日益增长的计算需求,相信各个实验室都开始买起了显卡。然而毕竟显卡还是贵,做不到人手一块,所以只能以公用机器的形式出现了。

    大家都在公用机器上跑实验,而各自所需要的软件(比如 Cuda、TensorFlow……)版本却可能不一样,这样很容易因为版本问题而导致程序无法运行。解决这些软件冲突问题是一个又繁琐又耗时的工作,而且常常弄得鸡飞狗跳,最终没有人可以正常运行实验。所以说,我们希望在公用的机器上能够有一定的管理,使得不同的用户不会相互影响。

    这里我列出一些需求:

    • 不同用户之间不能相互影响
    • 用户要能方便地访问自己的“虚拟机”
    • 用户要有足够大的权限,能自由地安装程序,能自由地访问网络
    • 用户不被允许直接操作宿主机
    • 用户要能够使用 GPU
    • 用户能够方便地使用实验室的 NAS
    • 为满足这些需求,额外的开销应该小得可以忽略
    • 管理员应该能轻松地添加新的用户

    下面我将叙述我解决以上需求的方法,以供有需要的人参考。本文的受众应该是实验室的公用机器管理员,有一定的 Linux 基础,或者对此感兴趣的普通用户。

    Read on →