小编Yan*_*ang的帖子

是否可以通过Golang和CUDA进行高性能计算?

我用谷歌搜索了一段时间,唯一有用的信息是:

  • github.com/barnex/cuda5
  • mumax.github.io/

不幸的是,最新的Arch Linux仅提供CUDA 7.5软件包,因此可能不支持barnex的项目.

Arne Vansteenkiste推荐并发而不是纯Golang或Golang加CUDA.更重要的是,有人说同样的想法是"在GPU上启动goroutine并通过渠道与它通信会不会很酷?".我认为这两个想法都很棒,因为我想尽可能少地改变现有代码,而不是重构整个程序.这个想法是否可行,或者是否有一些文件详细介绍了这个主题?

更新

似乎在Golang中有两个与HPC的绑定:

  • CUDA(<6.0):github.com/barnex/cuda5
  • OpenCL:github.com/rainliu/gocl

他们两个都没有记录,目前我得到的只是Macro13的答案,非常有帮助,但它更多的是关于java.所以请帮我一些Golang的详细资料.谢谢!

cuda hpc go opencl archlinux

22
推荐指数
0
解决办法
1万
查看次数

为Kubernetes中的pod分配或限制资源?

Pod的资源限制已设置为:

resource
  limit
    cpu: 500m
    memory: 5Gi
Run Code Online (Sandbox Code Playgroud)

并且10G在节点上留下了mem.

5成功地在短时间内创建了pod,节点可能还剩下一些内存,例如8G.

随着时间的推移,mem的使用越来越多,并且达到limit(5G x 5 = 25G > 10G),然后节点就会没有响应.

为了确保可用性,有没有办法在节点上设置资源限制?

更新

核心问题是pod内存使用并不总是等于限制,特别是在它刚刚启动时.因此,可以尽快创建无限的pod,然后使所有节点满载.这不好.可能有一些东西要分配资源而不是设置限制.

更新2

我再次测试了限制和资源:

resources:
  limits:
    cpu: 500m
    memory: 5Gi
  requests:
    cpu: 500m
    memory: 5Gi
Run Code Online (Sandbox Code Playgroud)

总内存为15G,剩余14G,但3个pod已安排并成功运行:

> free -mh
              total        used        free      shared  buff/cache   available
Mem:            15G        1.1G        8.3G        3.4M        6.2G         14G
Swap:            0B          0B          0B

> docker stats

CONTAINER           CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O
44eaa3e2d68c        0.63%               1.939 …
Run Code Online (Sandbox Code Playgroud)

cgroups docker kubernetes

9
推荐指数
2
解决办法
5990
查看次数

如何禁用linux中的oom杀手?

我目前的配置是:

> cat /proc/sys/vm/panic_on_oom
0
> cat /proc/sys/vm/oom_kill_allocating_task
0
> cat /proc/sys/vm/overcommit_memory
1
Run Code Online (Sandbox Code Playgroud)

但是当我执行任务时,无论如何都会被杀死.

> ./test/mem.sh
Killed
> dmesg | tail -2
[24281.788131] Memory cgroup out of memory: Kill process 10565 (bash) score 1001 or sacrifice child
[24281.788133] Killed process 10565 (bash) total-vm:12601088kB, anon-rss:5242544kB, file-rss:64kB
Run Code Online (Sandbox Code Playgroud)

更新

我的任务习惯于科学计算,这需要花费很多回忆,似乎overcommit_memory=1可能是最好的选择.

更新2

实际上,我正在研究一个数据分析项目,它花费的内存超过了16G,但我被要求限制它们5G.可能无法通过优化程序本身来实现此要求,因为项目使用了许多子命令,并且大多数子命令不包含类似Java XmsXmxJava 中的选项.

更新3

我的项目应该是一个过度的系统.正如a3f所言,似乎我的应用程序更喜欢xmalloc在mem分配失败时崩溃.

> cat /proc/sys/vm/overcommit_memory
2
> ./test/mem.sh
./test/mem.sh: xmalloc: .././subst.c:3542: cannot allocate 1073741825 bytes …
Run Code Online (Sandbox Code Playgroud)

linux cgroups docker

5
推荐指数
1
解决办法
1万
查看次数

如何撤销 Kubernetes 集群中的签名证书?

kube-apiserver似乎没有提供使用证书撤销列表(CRL)的选项。

如果客户端证书丢失或不再使用,有没有办法撤销它?

certificate ca kubernetes

5
推荐指数
1
解决办法
3542
查看次数

标签 统计

cgroups ×2

docker ×2

kubernetes ×2

archlinux ×1

ca ×1

certificate ×1

cuda ×1

go ×1

hpc ×1

linux ×1

opencl ×1