TensorFlow分布式在Amazon AWS上运行

Amazon AWS 提供采用 NVIDIA K8 GPU 的 P2.x 机器。为了能够使用,第一步还需要创建一个 Amazon AWS 账户,如果还没有,可以使用链接https://portal.aws.amazon.com/billing/signup?nc2=h_ct redirect_url=https%3A%2F%2Faws.amazon.com%2Fregistration-confirmation#/start (https://portal.aws.amazon.com/billing/signup?nc2=h_ct%20redirect_url=https%3A%2F%2Faws.amazon.com%2Fregistration-confirmation#/start)来创建。登录账户后,控制台看起来如下图所示:

可以看到,Amazon AWS 提供了大量服务,但在这里关注的是使用 Amazon AWS 进行深度学习。



GPU 仅在 P2 实例构建时可用,并且在默认情况下不可用,为了获得该服务,需要通过 AWS support 来提高价格以增加资源,support 位于右上角,一旦进入 support,看到一个 Create case 按钮,点击该按钮,并做出以下选择:

可以选择任何提供 p2.xlarge 实例的区域。New limit value 决定了可使用实例的最大数量,请仔细选择该数字,因为该服务不是免费的,每小时大约花费 1 美元。AWS 大约会用 24 小时回复请求。

准备工作

现在已经拥有了 AWS 账户和
p2.xlarge 实例,就可以从 EC2 控制台创建自己的实例。第一步是选择 Machine Image(机器镜像),到目前为止,亚马逊提供预装深度学习库的特殊机器镜像,可以选择 Ubuntu 或 Linux 版本。接下来,选择 GPU 确定实例类型。

可以使用默认参数查看和启动(Review and Lanuch)实例,也可以配置设置,选择存储并配置安全组(security group)。配置安全组非常重要,默认情况下,SSH 安全组已经设置,但是如果要使用 Jupyter Notebook,则需要为端口 8888 添加自定义安全组,选择 source 以备登录实例,其中 source 有三个选项,分别为:Custom、Anywhere 和 My
IP。

最后,当启动实例的时候,会被要求创建一个密钥对(key pair),它允许登录到指定的实例。创建一个密钥对并下载相应的 .pem 文件,这将在稍后登录时使用。

具体做法

  1. 连接到实例,可以通过 ssh 命令或浏览器完成,使用 CLI(命令行界面)。
  2. 连接 .pem 文件的可变化模块:

使用下面的命令将 SSH 连接到实例,当要连接时,通过控制台能够看到准确地址:                                                                                                                                                                                             

  1. 选择的机器实例已经包含了包括 TensorFlow 在内的所有深度学习库,所以不需要安装任何东西:                                                                                                                                                                            
  2. 每个文件夹都包含一个介绍如何使用相应库的 readme 文件:

解读分析

可以运行刚才学习的已经创建的实例的相关代码。一旦工作结束,不要忘记退出,并从控制台上停止实例。有关价格和使用的更多细节请访问:https://aws.amazon.com/documentation/ec2/

拓展阅读

AWS 市场上有大量具备预配置库和 API 的 docker 镜像和机器镜像。要启动 jupyter notebook,请在命令行中使用 <jupyter notebook--ip=0.0.0.0--no-browser>,输出如下所示:

复制该网址到浏览器中即可开始使用。




此外,使用 AWS CloudFormation 可以简化整个流程。CloudFormation 通过模板创建和配置 Amazon Web Services
资源,能够简化建立分布式深度学习集群的过程,有兴趣的读者请参考:https://aws.amazon.com/blogs/compute/distributed-deep-learning-made-easy/

TensorFlow分布式在Amazon AWS上运行的更多相关文章

  1. 如何在 Amazon AWS 上设置一台 Linux 服务器

    摘要: AWS(Amazon Web Services)是全球领先的云服务器提供商之一.你可以使用 AWS 平台在一分钟内设置完服务器.在 AWS 上,你可以微调服务器的许多技术细节,如 CPU 数量 ...

  2. jmeter操作数据库,分布式,在Linux上运行

    jmeter操作数据库: 1.在测试计划中导入数据库jar包 2.添加链接数据库信息 3.mysql:jdc:mysql://192.168.1.116:3307/bugfree?allowMulti ...

  3. TensorFlow alexnet在华为Mate10上运行方法

    我使用的caffe模型:https://github.com/BVLC/caffe/tree/ea455eb29393ebe6de9f14e88bfce9eae74edf6d/models/bvlc_ ...

  4. AWS上的游戏服务:Lumberyard + Amazon GameLift + Twitch

    开发一款世界级的游戏是一个非常困难,耗时和昂贵的过程.如今的游戏玩家要求越来越苛刻,他们希望既能够通过各种不同的终端设备来进行游戏 ,又要求游戏具有社交的功能. 因为此类游戏的开发期和推广期都非常长. ...

  5. 在亚马逊amazon的AWS上安装Node和MongoDB服务器

    在亚马逊amazon的AWS上安装Node和MongoDB服务器 在建立AWS上账号.创建EC2 ,用putty链接上之后,就可以用下面的方法开始安装. !!! 如果不是是自己建立的EC2, 而是由B ...

  6. 在Amazon AWS RHEL 7上安装 配置PPTP VPN

    0 前言 0.1 为什么需要VPN? 国内的VPN不是必须,但是国外的VPN是很有用的.连接到国外的VPN服务器之后就可以访问Google,Facebook, Youtube等网站,没有Google的 ...

  7. 在AWS EMR上运行Map Reduce的Java示例程序 及 操作小计

    下面的代码中AffairClient类中包含了三个内之类,分别对应于Hadoop Mapreduce程序运行所需的Mapper类,Reducer类,和主类.AffairClient类中其余方法用于配置 ...

  8. 在 K8s 上运行 GraphScope

    本文将详细介绍:1) 如何基于 Kubernetes 集群部署 GraphScope ; 2) 背后的工作细节; 3) 如何在分布式环境中使用自己构建的 GraphScope 开发镜像. 上篇文章介绍 ...

  9. [转]Amazon AWS亚马逊云服务免费一年VPS主机成功申请和使用方法

    今天部落将再次为大家介绍如何成功申请到来自亚马逊的Amazon AWS免费一年的VPS主机服务.亚马逊公司这个就不用介绍了,是美国最大的一家网络电子商务公司,亚马逊弹性计算云Amazon EC2更是鼎 ...

随机推荐

  1. Django Ajax序列化与反序列化

    序列化与反序列是最常用的功能,有时我们需要将一个表单组打包成Json格式等然后再提交给服务端,这样可以提高效率节约带框,如下是Django配合Ajax实现的序列化与反序列化,文件上传等操作. Ajax ...

  2. hdu3117 斐波那契前后4位

    题意:       求斐波那契的前后4位,n <= 10^8. 思路:       至于前四位,和hdu1568的求法一样:       http://blog.csdn.net/u013761 ...

  3. PowerShell-4.API调用以及DLL调用

    PowerShell可以直接调用API,So...这东西完全和cmd不是一回事了... 调用API的时候几乎和C#一样(注意堆栈平衡): 调用MessageBox: $iii = Add-Type - ...

  4. 【python】Leetcode每日一题-扁平化嵌套列表迭代器

    [python]Leetcode每日一题-扁平化嵌套列表迭代器 [题目描述] 给你一个嵌套的整型列表.请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数. 列表中的每一项或者为一个整数,或者是另 ...

  5. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?(n<=10)

    单纯考逻辑 题目: 一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?(n<=10) 输入描述: 一行,一个整数n (1< ...

  6. python 读写 HDFS

    pandas dataframe写入hdfs csv文件的两种方式: 1. from hdfs.client import Client cleint.write(hdfs_url, df.to_cs ...

  7. vscode 超好用的前端插件

    一 vscode 前端调试接口的插件 作为前端工程师,接口的调试是我们必不可少的工作.以前用过postman,但是作为一个vscode重度使用者,我希望看看vscode能否进行对接口的调试.省的跟后台 ...

  8. 『居善地』接口测试 — 3、Requests库介绍

    目录 1.Requests库 2.Requests库文档 3.Requests库安装 4.Requests库的使用 (1)使用步骤 (2)示例练习 5.补充:Json数据和Python对象互相转化 1 ...

  9. 从执行上下文(ES3,ES5)的角度来理解"闭包"

    目录 介绍执行上下文和执行上下文栈概念 执行上下文 执行上下文栈 伪代码模拟分析以下代码中执行上下文栈的行为 代码模拟实现栈的执行过程 通过ES3提出的老概念-理解执行上下文 1.变量对象和活动对象 ...

  10. python函数默认值只初始化一次

    当在函数中定义默认值时,值初始化只会进行一次,就是执行到def methodname时执行.看下面代码: from datetime import datetime def test(t=dateti ...