王希刚 发布于 02月17, 2019

适合AI场景的调度器 - gang-schedule

使用kubeflow结合kubernetes进行大规模分布式训练时,由于AI场景下对任务的调度需要: all or nothing, multi-tenant task queue, task priority, preemption,gpu affinity等条件,但是kubernetes默认的调度器对这些条件还没有完全的支持,幸运的是kubernetes社区孵化了一个适合训练的调度器kube-batch

阅读全文 »

张超 发布于 01月28, 2019

MQTT协议之发布订阅

介绍了MQTT如何创建客户端与服务端之间的连接之后,接下来就是如何进行消息的传递,本篇博客将进一步介绍MQTT的发布,订阅细节。

阅读全文 »

杨玉东 发布于 01月25, 2019

Common Test的使用

简介

Common Test 是一款用于自动化测试的软件,它适用于:

  • 任何系统的黑盒测试 通过SNMP,HTTP,CORBA,Telnet等

  • Erlang/OTP程序的白盒测试 在测试用例中直接调用目标API

Common Test还集成了cover,cover是一个代码覆盖率分析的工具。

Common Test能够自动运行Test Suite并将测试结果打印到HTML格式的日志文件中,而无需测试人员值守。Common Test还可以通过OTP event manager将测试进度或测试结果发送到event handler中,这样一来,用户就可以将他们自己的程序(如日志、存储、监控等)集成到Common Test中来。

Common Test提供了多种有用的库,以满足不同的测试需求。例如,通过Test Specification支持灵活的测试声明,此外,它还支持并行运行的多个独立测试会话(到不同的目标系统)的集中配置和控制。

阅读全文 »

李钢 发布于 01月18, 2019

2018年的项目思考

去年我由干了多年的业务部门调岗到目前的技术平台部门已经快1年了,这一年过得并不轻松,遇到很多困难,到目前也没有全部解决,总有一种夹缝中求生存的感觉。

2018年末了,我做了很多思考,技术上的、非技术上的,这里来总结一下:

阅读全文 »

康凯 发布于 01月18, 2019

关于使用 Python 析构函数的正确姿势

析构函数是 C++ 中一个非常重要的概念,析构函数 (destructor) 与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。 析构函数往往用来做“清理善后” 的工作,例如在建立对象时用 new 开辟了一片内存空间,delete 则会调用析构函数后释放内存。

而在 Python 中没有专用的构造和析构函数,但是一般可以在__init____del__分别完成初始化和删除操作,以替代构造和析构。

但是 Python 社区中的许多人都不推荐使用 __del__,因为 Python 对对象使用了引用计数来管理,很多情况下是很难以估计是什么时候引用计数为 0 而造成销毁的,同时很多使用技巧告诉我们使用 Python 编程不用再过度优化内存使用,以避免写出 C++ 风格的代码。

在本文中,我们将明确如何来正确使用__del__

阅读全文 »

吕程 发布于 12月16, 2018

基本图形生成技术——直线

图形的生成:是在指定的输出设备上,根据坐标描述构造二维几何图形。 图形的扫描转换:在光栅显示器等数字设备上确定一个最佳逼近于图形的象素集的过程。

阅读全文 »

杨玉东 发布于 12月16, 2018

自定义TCP通信协议的压力测试

背景

对于通用的通信协议,主流的压测工具对其支持都比较完善;对于私有的或是流行度不是很高的通信协议,主流的压测工具是不支持的,要想解决这个问题有两种办法:

  • 直接发送Raw Data 这种方式比较灵活,只要知道协议格式,照着编写Raw Data就可以了,缺点也显而易见:压测脚本编写起来比较复杂,容易出错,代码复用率很低,不太方便修改和维护;
  • 编写专用的插件 这种方式下,压测脚本编写起来简单许多,而且方便阅读与维护,可以说是一劳永逸。

本文中使用的压力测试工具为Tsung,它本身支持许多种协议,配置简单灵活,我们只要给Tsung编写一个插件就可以实现我们的需求。

阅读全文 »

王希刚 发布于 12月08, 2018

Kubeflow使用Kubernetes进行机器学习

Kubeflow是Google推出的基于kubernetes环境下的机器学习组件,通过Kubeflow可以实现对TFJob等资源类型定义,可以像部署应用一样完成在TFJob分布式训练模型的过程。最初的设计是将Kubernetes和Tensorflow结合实现对Tensorflow分布式训练的支持。但是仅仅实现对Tensorflow的支持还是远远不够的,Kubeflow社区又陆续对各种深度学习框架进行支持,例如:MXNet, Caffee, PyTorch等。使得机器学习算法同学只需关心算法实现,而后续的模型训练和服务上线都交给平台来做,解放算法同学使其专做自己擅长的事儿。

阅读全文 »