认识 Goold Coral Dev Board

参考文档: Coral Dev Board 硬件配置与布局 Edge TPU SOM Quad Core ARM Cortex A53 Google Edge TPU ML accelerator 8GB eMMC 1GB LPDDR4 OS Mendel Linux Video 39Pin MIPI DSI Display 24Pin MIPI CSI-2 Camera VPU (Video Processing Unit) 4K p60 H.265 decoder 4K p60 && 4K p30 AVC/H.264 decoder 1080 p60 MPEG-2, MPEG-4p2, VC-1, VP8, RV9, AVS, MJPEG, H.263 decoder 图片取自Coral官网 GPIO 布局 文档 原型设计和工业生产环境 Coral的产品线 原型设计: CoralDev Board 开发板 ...

May 31, 2020

对抗 CoVid-2019

一段简短的视频请点击这里 关于分布式计算项目 第一次接触分布式计算项目是在高中毕业的那段时间,用自己的笔记本跑过Boinc分布式计算平台,其中最著名的是seti@home, Boinc平台就是为这个项目而开发的。 分布式计算的思想就是主服务器将一个任务拆分成若干个小任务,将这些小任务分派给客户端进行运算,客户端运算完成之后将小任务结果发送给主服务器,主服务器将这些计算结果汇总而得到该任务的执行结果。 由于采用超级计算机进行计算的成本相当昂贵,并且在一些预测计算领域,可能最终的计算结果是以失败告终,所以有人发明出了利用个人闲置的计算机的计算资源,将这些资源连接成一个分布式的网格系统,计算资源的获取全部在这个网格系统中进行,由此演变出了很多的分布式计算项目。 关于 Rosetta 项目 rosetta@home这个项目主要是用来预测蛋白质的三维折叠结构。根据官网所说,Rosetta在预测特定蛋白质的形状时,其实就是在寻找具有最低能量的折叠,这一点很有意思,因为可以和数学物理学中关于能量的计算拉上关系,似乎自然界本身都是在以一种最基本的能量守恒和以最低的能量代价来稳定生命和物种的繁衍。因为对这种蛋白质折叠计算突然有了好奇心,并且也关注到DeepMind研发的AlphaFold采用人工智能的方式预测蛋白质的三维结构,所以买了两本生命科学的书来进行研究,后续出稍微偏专业向的文章。 引用一句英文原文的话 proteins are truly amazing machines: before they do their work, they assemble themselves. 蛋白质是一部非常让人感到惊讶的机器,他们在有效工作之前必须先自我装配成一种特定的形状. 重新回到Rosetta的计算方式上,预测蛋白质的折叠结构的计算方式: 程序会从没有任何折叠的链开始 移动链的一部分,产生新的新的形状,计算该形状下的能量 根据能量上的变化是否接受这次移动 重复2-3的过程直到链中的每一部分都移动了足够多的次数 最后程序会得到一个结构,该结构是目前该链序列下预测出来的最低能量形状,由于预测过程中采用的是随机移动链的部分,所以计算量是相当大的。在分布式计算过程中,客户端计算完每条链的最低能量状态,然后将其结果发送给服务端,然后科研人员对所有从客户端收集到该链的最低能量状态结构进行对比,得到最低的能量状态,这样也就完成了对该蛋白质折叠的预测。 第一本书是 《结构生物学 从原子到生命》 原书名称: 《Textbook of Structural Biology》 第二本书 《蛋白质物理》 其中与Rosetta类似的蛋白质折叠项目Folding@home也是一个分布式计算项目,两者的区别就是在于 Rosetta的目的的是预测出蛋白质的最终结构,Folding@home是计算蛋白质如何折叠的过程。两者的区别我还需要阅读生物学领域的相关专业书籍之后在做出具体的分析,后续会出相关的文章。 搭建 Raspberry Pi 分布式计算集群 Raspberry Pi 目前总共由12台ARM开发板加入到了Rosetta计算中,其中有两台是Jetson Nano,因为目前的专注领域在人工智能,所以想多理解些生物领域方面的知识,因为最初的人工神经网络ANN就是从大脑的神经元计算模式抽象出来的。 目前集群的管理和应用编排采用的是kubernetes工具,操作系统安装的是Ubuntu Server Raspberry Pi, k8s的实现方案采用的是MicroK8s, 后续会考虑采用k3s的实现方案来管理更多的节点,比如节点扩展到20台Raspberry Pi。 目前已经更新到20个RPI节点,集群管理系统采用k3s,这些小机器在结束Rosetta项目之后会用于Tensorflow,MXNet的分布式学习项目中。 目前集群的架构如下图,3 * (ETCD + Master) + HAProxy + 17 * Worker ...

April 24, 2020

Create Gluste Filesystem Cluster

glusterfs 简介 glusterfs 一套分布式的网络文件系统, 因为要在kubernetes当作共享式永久存储文件系统使用,所以借此机会研究下该文件系统. 搭建过程 准备 准备三台服务器,可以互相访问 操作系统 Linux (ubuntu or centos) 安装 gluster server 快速安装过程详见 Quick Start Guide 具体安装的过程详见 Install Guide 由于我选择的操作系统是 Centos 7.x, 所以下面所有的操作过程全部在Centos上完成. 三台服务器分别为 Server1, Server2, Server3 分别在三台服务器上安装gluster server yum install centos-release-gluster && yum install glusterfs-server # install server yum install centos-release-gluster && yum install glusterfs-client # install client 在 Server1 上执行 gluster peer probe server2 gluster peer probe server3 分别在 Server2 Server3 上执行 gluster peer probe server1 显示添加节点状态 gluster peer status Server上分别会显示peers信息 ...

April 15, 2020