问题标签 [starcluster]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 在 AWS 中使用雪(和降雪)在 R 中进行并行处理
关于我之前的类似 SO 问题,我尝试在 AWS 上使用雪/降雪进行并行计算。
我所做的是:
- 在
sfInit()
函数中,我将公共 DNS 提供给socketHosts
参数,如下所示sfInit(parallel=TRUE,socketHosts =list("ec2-00-00-00-000.compute-1.amazonaws.com"))
- 返回的错误是
Permission denied (publickey)
- 然后我按照http://www.imbi.uni-freiburg.de/parallel/的“无密码安全外壳 (SSH) 登录”部分中的说明(我认为是正确的!)
- 我只是将我在 AWS 上创建的 .pem 文件的内容放入我想从我的主 AWS 实例和主 AWS 实例连接的 AWS 实例的 ~/.ssh/authorized_keys 中
有什么我错过的吗?如果用户可以分享他们在 AWS 上使用雪的经验,我将非常感激。
非常感谢您的建议。
更新:我只是想更新我发现的针对我的具体问题的解决方案:
- 我使用 StarCluster 设置我的 AWS 集群:StarCluster
snowfall
在集群的所有节点上安装包- 从主节点发出以下命令
hostslist <- list("ec2-xxx-xx-xxx-xxx.compute-1.amazonaws.com","ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com")
sfInit(parallel=TRUE, cpus=2, type="SOCK",socketHosts=hostslist)
l <- sfLapply(1:2,function(x)system("ifconfig",intern=T))
lapply(l,function(x)x[2])
sfStop()
- ip 信息确认 AWS 节点正在被使用
python - 在 Amazon ec2 上部署科学的 Python 算法
我有一个 Python 科学模型,它调用一些 C 代码并使用 numpy、scipy 和许多地理分析模块。我想在 EC2 上部署它,但我对 EC2 还不太了解。
在设置派生自 StarCluster AMI 的 AMI 后,我已检查是否可以使用 StarCluster 包来部署我的堆栈。这些已经有 numpy 和 scipy 和 ipython,所以我所要做的就是添加地理模块。
我的计划是编写一个在客户机器上运行的独立 GUI,并确保他们的输入对我的模型有效。然后,独立 GUI 将最多约 10 GB 的压缩档案发送到 FTP 位置。然后他们登录到我在 EC2 上运行的网页,他们在其中配置运行属性(实例数、模型运行数)。该网页启动一个脚本,该脚本在客户指定的集群上完成客户的工作。后处理器处理模型输出并写入最初受密码保护的结果网页和图表,仅供客户查看。我的模型运行由单个迭代组成,可能需要 5 分钟到 3 小时。
任何人都可以为这个模型的理想设置提供任何建议吗?我想我可以弄清楚它的科学部分,但我不明白运行 Web 界面的起点是什么......
谢谢
python - IPython.parallel 命名空间
我想使用 IPython.parallel 并行化一个函数,当我在 IPython shell 中定义它时,它可以完美地工作:
但是,当我在模块中定义它并使用导入时:
此外,它在运行 Python 2.7.2/IPython 0.12 的本地系统上运行良好,而使用最新的 Starcluster Ubuntu AMI 在 Python 2.7.2+/IPython 0.12 上崩溃。
这里发生了什么?
更新:我从 github 安装了 IPython 0.13.dev 版本,现在它可以工作了。
python - 如何让 StarCluster AMI 与 IPython 0.13 一起使用?
我尝试在两个不同的 StarCluster AMI(它们默认的 64 位 Ubuntu 11.10 和 QIIME 1.5 映像)上升级 IPython。无论哪种情况,当我启动集群时,初始化脚本都会挂在“等待 JSON 连接器文件...”处。我登录到实例,事实上,即使 ipcluster 守护程序正在运行,它也没有将任何 JSON 文件写入 profile_default/security。
也许这是 IPython 0.12 和 0.13 放置连接器文件的位置之间的区别?或者更新的 ipcluster 可能由于某种原因挂起?它似乎没有任何有意义的日志,所以我不确定如何弄清楚发生了什么。有没有人幸运地升级了 StarCluster AMI 以使用最新的 IPython?如果是这样,你是怎么做到的?
hadoop - 云端小功能的并行处理
我有几百万/十亿 (10^9) 数据输入集,需要处理。它们很小,小于 1kB。它们需要大约 1 秒的时间来处理。
我读过很多关于 Apache Hadoop、Map Reduce 和 StarCluster 的文章。但我不确定最有效和最快的处理方式是什么?
我正在考虑使用 Amazon EC2 或类似的云服务。
python - 在 AWS 上使用 starcluster 和 ipython 进行集群计算
我正在尝试在 AWS 上尝试一些集群计算。我对此完全陌生,并且遇到了一些问题。我正在尝试遵循此处找到的教程:http: //star.mit.edu/cluster/docs/latest/plugins/ipython.html#using-the-ipython-cluster。我使用 starcluster 来启动一个集群实例:
一切都按预期出现,它表明 ipython 插件已加载。然后我尝试执行以下命令,如教程中所示:
但是,连接失败,并告诉我
我可以使用登录
所以我尝试继续登录到主控的教程,但是当我尝试创建客户端时,我收到错误:
我看到的唯一不寻常的事情是在集群启动时出现:
有什么想法吗?
architecture - 在 EC2 中构建集群的正确方法
我正在开发开源工具,它必须在 EC2 的集群上运行,以“一个主 - 几个从”的方式组织。我需要一些关于如何以最简单但可靠的方式正确组织事物的建议。
我基本上需要的是一个将在主实例(用户手动运行)上运行并执行以下操作的代码:
a) 运行 N 个从属实例(N 个来自用户)
b)在每个实例启动并运行后 - 通过 SSH 连接并启动一些东西。
c) 跟踪从属实例是否处于活动状态(例如通过简单地 ping 它们)
d) 如果从属实例失败 - 确保它已终止,运行另一个实例并重复步骤 b)
e) 通过来自用户的信号 - 关闭从属实例。
所有这些看起来都非常简单明了,但我有一些问题:
1)现成的解决方案。首先我看了一下Zookeeper,但我被它的复杂性吓到了。对于我需要的这么简单的事情来说,这似乎有点过头了。我发现的另一件事是StarCluster,它也在 Python 中,这很好(我的工具也在 Python 中),但我不确定它是否能满足我的需要(跟踪、重新运行实例)。我的问题是:是否有我不知道的简单工具、库、框架?
2)另一种方法是自己实现。这里的问题是:我的问题中是否有我不知道的陷阱?这一切看起来都很简单:对 API 的多次调用加上一些常规 ping,但可能我在这里看不到任何东西,所以使用已经编写的工具真的是正确的吗?
3)如果我自己编码,问题是:是否使用 CloudWatch。它真的对管理内部计算集群有什么不同吗?或者它只是更好地帮助处理高负载站点等?
4) 我的简单架构对主节点故障没有任何保护。用户运行它,然后通过 Web 界面连接到它并运行集群,但如果主节点出现故障 - 一切都会被破坏。从属节点可以检查主节点的存在,并在主节点出现故障时自行终止。这增加了一些防止无头运行的耗钱集群的保护,但这并不能解决优雅重启的问题。如何解决这个问题?
5) 在开始编写这个项目之前,是否还有其他需要了解的内容或需要阅读的重要资料?
先感谢您!
python - 所有集群计算库都兼容starcluster吗?
我有一个在亚马逊 EC2 上运行的高度线程化的应用程序。我想将此应用程序转换为 EC2 上的集群。我想为此使用starcluster,因为它易于管理集群。
但是我是集群/分布式计算的新手。谷歌搜索后,我发现以下用于集群计算的 python 库列表:
http://wiki.python.org/moin/ParallelProcessing(看集群计算部分)
我想知道是否所有的库都可以与 starcluster 一起使用。因为我希望应用程序与starcluster一起使用,所以在选择库时我需要记住什么,比如依赖项?
python - 如何动态扩展 StarCluster/qsub/EC2 以跨多个节点运行并行作业
我是使用 Startcluster/qsub/grid engine 来运行并行作业的新手,我尝试阅读其他一些相同的帖子。我仍然不确定如何为我的特定需求构建可扩展的解决方案。在继续之前,我想接受更多建议。
以下是我的要求:
我有一个巨大的 tar 文件 [~40 - 50 GB,它可以达到 100GB] -----> 我在这里无能为力。我接受了一个巨大的单个 tar 文件作为输入。
我必须解压并解压缩它----->我运行 tar xvf tarfilename.tar | 并行 pbzip -d 解压缩和解压缩相同。
这种解压缩的输出是几十万个文件,大约 500,000 个文件。
必须处理此未压缩文件。我有模块化代码,可以接收每个文件并处理它并输出 5 个不同的文件。
Tar File -----Parallel Uncompression---> Uncompressed Files -----Parallel Processing ---> 每个文件处理 5 个输出文件
我目前有一个在 16 核、16GB 内存上运行的并行 python 脚本,它接收这个未压缩文件列表并并行处理相同的文件。
问题是我如何无缝扩展。例如,如果我的代码已经运行了 10 个小时,并且我想再添加一台 8 核机器,我不能在并行 python 中执行它,因为我必须提前知道处理器的数量。
同时,当我在当前集群中动态添加更多节点时,数据的可访问性和读写操作如何?
因此,我开始阅读并使用 starcluster 和 qsub 进行基本实验。虽然我看到我可以通过 qsub 提交多个作业,但我将如何使其从未压缩的输入文件夹中获取输入文件?
例如,我可以编写一个 script.sh 在 for 循环中一个一个地选择文件名并将其提交给 qsub 命令吗?还有其他有效的解决方案吗?
比如说,如果有 3 台机器,每台机器有 16 个 CPU,如果我向队列提交 48 个作业,qsub 是否会在集群的不同 CPU 中自动启动它们,或者我是否必须使用并行环境参数,如 -np orte 命令设置数量每个集群中的 CPU 数量。是否有必要让我的 python 脚本 MPI 可执行?
总而言之,我有几十万个文件作为输入,我想将它们提交给多核机器的作业队列。如果我动态添加更多机器,作业应该会自动分配。
另一个主要挑战是我需要在最后汇总 500,000 次操作的所有输出吗?是否有关于如何在输出被写出时聚合并行作业的输出的建议?
我正在测试运行几个场景,但我想知道是否有人尝试过类似的场景。
使用 Hadoop 插件有什么建议吗?http://star.mit.edu/cluster/docs/0.93.3/plugins/hadoop.html
在此先感谢卡西克
grid - 是否有适用于 Google Compute Engine (GCE) 的 Starcluster?
有谁知道 GCE 是否有 Starcluster 等价物?我很高兴将 Starcluster 与 EC2 一起用于令人尴尬的并行作业。现在我想试试 GCE。我很乐意为正在进行的任何项目做出贡献,但我没有找到任何东西。
现在,我想我会手动安装我需要的软件(即 Open Grid Engine)并生成一个副本图像。不太难,但我想我会先检查这里。