Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >高通量计算框架HTCondor(五)——分布计算

高通量计算框架HTCondor(五)——分布计算

作者头像
charlee44
发布于 2020-02-14 08:35:59
发布于 2020-02-14 08:35:59
88100
代码可运行
举报
文章被收录于专栏:代码编写世界代码编写世界
运行总次数:0
代码可运行

目录

  • 1. 正文
    • 1.1. 任务描述文件
    • 1.2. 提交任务
    • 1.3. 返回结果
  • 2. 相关

1. 正文

1.1. 任务描述文件

前文提到过,HTCondor是通过condor_submit命令将提交任务的,这个命令需要提供一个任务描述文件。这个任务描述文件详细描述了任务运行的需求情况,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
universe = vanilla
requirements = (Arch == "INTEL" || Arch == "X86_64") && (OpSys == "WINDOWS") && (Machine == "charlee-PC" || Machine == "DESKTOP-OVHV440") 
executable = D:\Work\HTC\Work\bin\TaskProgram.exe
should_transfer_files = YES
when_to_transfer_output = on_exit
notification = complete
skip_filechecks = true

arguments = 0
initialdir = D:\Work\HTC\Work\0
transfer_input_files = input.txt
transfer_output_files = output.dat
output = $(CLUSTER)_$(PROCESS).out
log = $(CLUSTER)_$(PROCESS).log
error = $(CLUSTER)_$(PROCESS).error
queue

arguments = 1
initialdir = D:\Work\HTC\Work\1
transfer_input_files = input.txt
transfer_output_files = output.dat
output = $(CLUSTER)_$(PROCESS).out
log = $(CLUSTER)_$(PROCESS).log
error = $(CLUSTER)_$(PROCESS).error
queue

...

arguments = 15
initialdir = D:\Work\HTC\Work\15
transfer_input_files = input.txt
transfer_output_files = output.dat
output = $(CLUSTER)_$(PROCESS).out
log = $(CLUSTER)_$(PROCESS).log
error = $(CLUSTER)_$(PROCESS).error
queue

universe参数表示HTCondor的运行环境,默认为vanilla。vanilla提供的功能会少一些,但是使用也会较为方便。如果要使用一些高级的功能,可以使用standard环境,standard环境提供了断点和迁移的功能,不过需要一些额外的重链接操作生成特定的可执行程序。

requirements参数表示该一系列任务的需求。HTCondor采取了一种ClassAds匹配策略,每台计算机会一直在Pool中广播关于自己资源的Ad,通过这个参数,可以匹配该任务是否与该计算机适配。这里设置的意思是选择X86的Windows机器,且机器名称为"charlee-PC"或"DESKTOP-OVHV440"。使用"name == "slot1@USER-EHN3KRBP1V"的形式,甚至可以指定到某一核来运行。

executable也就是上一篇中实现的可执行程序。

should_transfer_files表示使用文件传输机制。文件传输机制也就是任务程序需要的数据,跟随任务程序一起发送到任务机中运行。如果不使用文件传输机制,就需要如NFS或AFS这样的共享文件系统

when_to_transfer_output = on_exit表示当任务程序完成之后,会有输出的文件一起传送回本机。

接下来arguments开头queue结尾的代码描述了16组任务的详细描述。initialdir是初始化目录,也就是上一节中创建的每个分任务的目录。

transfer_input_files表示传送到任务机的文件。这个参数可以设置成具体的文件,目录,设置是可执行程序依赖的dll。注意发送到任务机后这些文件与执行任务文件在同一个目录中。

when_to_transfer_output表示发送回本机的文件。当任务程序运行完成后,会生成处理好的数据,可以通过这个参数将文件传送回本机。

output表示任务程序的输出文件,可以截获任务程序的stdout流。

log表示集群执行任务程序的状态,一般是HTCondor框架自动生成。

error表示任务程序的错误文件,可以截获任务程序的stderr流。

1.2. 提交任务

在命令提示符窗口中输入condor_submit指令:

可以看到成功提交后,返回了一个任务ID号。可以通过condor_q指令查看当前的任务队列状态:

ST这一列的I代表idle,也就是闲置的。这时由于任务刚提交上去,还来不及匹配任务机器或者没有更新状态,多刷新几次,可以看到这一栏会编程R,也就是Run,表示运行状态:

继续输入condor_status,查看当前计算机资源的情况。这时的状态刷新会更慢些,也可以多输入几次:

State表示资源占用情况,Claimed表示已占用,Claimed表示未占用。Activity表示当前的活动状态,Idle就是闲置,Busy表示繁忙。

通过以上指令,可以查看当前任务是否正常。等待直到condor_q中的任务队列为空,就说明当前所有的任务已经完成了。

1.3. 返回结果

根据任务描述文件,任务程序会返回一个输出数据output.dat已经相关的日志信息.log、.out、.error。任务完成后会回传到各自的初始化目录中:

.out是任务程序的stdout流,可以用来输出信息;.error是任务程序的stderr流,可以用来输出错误信息。在任务程序中输出信息和日志是必要的,可以第一事件排查是哪一段代码出问题。如果连这两个文件都没有,可以考虑是否是HTCondor的环境配置问题,或者任务描述文件是否出错。

.log是HTCondor的输出日志,可以用来参考。output.dat就是任务程序的输出数据了,当然这个数据因任务程序而异,任务程序输出什么,任务描述文件就返回对应的数据,当然也可以什么都不用返回。

在HTCondor任务程序计算的过程中,会把任务程序传送到对应的任务机器,也就是任务机器HTCondor安装目录的execute目录中,运行时会看到任务程序,以及传送过来的数据等:

当然,在运行完成后,这个execute目录就会自动清空。

至此,一个简单的分布式计算流程就算完成了。实际的运用当然没这么简单,但是总体的思路都是这样的:

拆分任务——提交任务——监视任务——任务完成——合并结果。

2. 相关

代码和数据地址

上一篇

目录

下一篇

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-01-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
高通量计算框架HTCondor(六)——拾遗
如果真正要将HTCondor高通量计算产品化还需要很多工作要做,HTCondor并没有GUI界面,更多更全面的功能在Linux系统下的命令窗口下更方便。
charlee44
2020/02/14
7610
高通量计算框架HTCondor(二)——环境配置
HTCondor是开源跨平台的分布式计算框架,在其官网上直接提供了源代码和Windows、Linux以及MacOS的安装包。因为平台限制的原因,在Windows下的功能是有所限制的,但其使用也是最直观方便的。为了更加便于了解使用情况,这里我还是采用Windows,建议后期有更多的需求或者基础足够好,可以直接上Linux。
charlee44
2020/02/14
1K0
高通量计算框架HTCondor(一)——概述
HTCondor是威斯康星大学麦迪逊分校构建的分布式计算软件和相关技术,用来处理高通量计算(High Throughput Computing )的相关问题。高通量计算中的Throughput应该是吞吐量的意思,也就是调度计算机资源的能力。与高性能计算(HPC)不同,高通量计算(HTC)应对的问题是在高性能的同时能够长时间稳定运行的能力,并充分利用集群或网络内计算资源。长时间计算时,集群或网络内计算资源往往是不可靠的,这中间蕴含了计算资源管理和任务调度的问题。
charlee44
2020/02/14
1.7K0
《Python分布式计算》 第6章 超级计算机群使用Python (Distributed Computing with Python)典型的HPC群任务规划器使用HTCondor运行Python任务
本章,我们学习另一种部署分布式Python应用的的方法。即使用高性能计算机(HPC)群(也叫作超级计算机),它们通常价值数百万美元(或欧元),占地庞大。 真正的HPC群往往位于大学和国家实验室,创业公司和小公司因为资金难以运作。它们都是系统巨大,有上万颗CPU、数千台机器。 经常超算中心的集群规模通常取决于电量供应。使用几兆瓦的HPC系统很常见。例如,我使用过有160000核、7000节点的机群,它的功率是4兆瓦! 想在HPC群运行Python的开发者和科学家可以在本章学到有用的东西。不使用HPC群的读者,
SeanCheney
2018/04/24
4.3K1
《Python分布式计算》 第6章 超级计算机群使用Python (Distributed Computing with Python)典型的HPC群任务规划器使用HTCondor运行Python任务
高通量计算框架HTCondor(三)——使用命令
其中bin目录里面存放了一系列condor_开头的可执行程序,正是通过这些指令程序来实现分布式计算的。其中有个GUI程序condor_birdwatcher.exe,打开后运行界面如下:
charlee44
2020/01/31
1.4K0
高通量计算框架HTCondor(四)——案例准备
使用高通量计算第一步就是要针对密集运算任务做任务划分。将一个海量的、耗时的、耗资源的任务划分成合适粒度的小任务,需要综合考虑资源、数据等多方面因素。HTCondor并不参与这方面的工作,任务划分需要用户自己实现。
charlee44
2020/01/31
6450
生信自动化流程搭建 06 | 指令
他们必须在过程的顶部进入人体,在任何其他声明块(即input,output等),并具有以下语法:
白墨石
2021/01/12
1.7K0
玩转企业云计算平台系列(十七):Openstack 大数据项目 Sahara
2013年4月,OpenStack社区知名厂商Mirantis正式宣布了基于OpenStack的开源BDaaS(BigData-as-a-Service)项目——Sahara(原名Savanna),正式开始了在OpenStack上构建大数据服务能力的努力。
民工哥
2024/01/18
4590
玩转企业云计算平台系列(十七):Openstack 大数据项目 Sahara
Node.js快速入门
下载最新版源码:https://nodejs.org/dist/v6.9.5/node-v6.9.5.tar.gz
程裕强
2022/05/06
11.5K0
Linux重定向
在 Linux 中,重定向是一种将命令的输出或输入重定向到文件或其他命令的机制。它可以用于管理标准输入、标准输出、标准错误等。重定向通常与命令行中的 >、<、>>、2> 等符号一起使用。下面是关于 Linux 重定向的详细说明。
ljw695
2024/10/18
2220
Linux环境反弹shell原理与姿势
我们日常渗透测试过程中的最终目的是获取到目标系统的权限,常见的有通过文件上传、命令执行、反序列化等方式,其中在执行命令执行的时候由于目标系统大多数情况下处于防火墙之后、命令执行的权限不够、端口被占用等情况,那么在这种情况下我们就需要考虑——反弹shell,即攻击者在攻击主机上开启端口监听,随后让目标主机反向连接攻击者的服务器,从而规避防火墙、端口、权限等问题,本篇文章我们主要介绍Linux环境中如何通过命令执行来反弹shell
Al1ex
2025/01/12
3950
Linux环境反弹shell原理与姿势
Flink入门(三)——环境与部署
flink是一款开源的大数据流式处理框架,他可以同时批处理和流处理,具有容错性、高吞吐、低延迟等优势,本文简述flink在windows和linux中安装步骤,和示例程序的运行,包括本地调试环境,集群环境。另外介绍Flink的开发工程的构建。
大数据流动
2019/12/16
2.4K0
Flink入门(三)——环境与部署
node中fs模块之文件操作
关于node的文件操作我们该如何处理呢?下面我整理了一下关于node的文件操作api大家可以看下
全栈若城
2024/02/29
1980
Flink快速入门--安装与示例运行
flink是一款开源的大数据流式处理框架,他可以同时批处理和流处理,具有容错性、高吞吐、低延迟等优势,本文简述flink在windows和linux中安装步骤,和示例程序的运行。
用户6070864
2019/08/30
2.2K0
Flink快速入门--安装与示例运行
Eclipse连接Hadoop集群和WordCount实战
挖掘大数据
2017/12/20
2.4K0
主流开源分布式图计算框架 Benchmark
本文由美团 NLP 团队高辰、赵登昌撰写,首发于 Nebula Graph Community 公众号
NebulaGraph
2022/05/09
1.9K0
主流开源分布式图计算框架 Benchmark
Flink集群部署
上一节我们讲了单机模式如何部署启动,这节我们基于CentOS 7虚拟机搭建一个3个节点的集群:
王知无-import_bigdata
2019/03/05
4.6K0
Flink1.3 指南四 命令行接口 转
Flink提供了一个命令行接口(CLI)用来运行打成JAR包的程序,并且可以控制程序的运行。命令行接口在Flink安装完之后即可拥有,本地单节点或是分布式的部署安装都会有命令行接口。命令行接口启动脚本是 $FLINK_HOME/bin目录下的flink脚本, 默认情况下会连接运行中的Flink master(JobManager),JobManager的启动脚本与CLI在同一安装目录下。
stys35
2019/03/05
1.5K0
【Linux】《how linux work》第二章 基本命令和目录层次结构(2)
Speaking of editing, it’s time to learn an editor. To get serious with Unix, you must be able to edit text files without damaging them. Most parts of the system use plaintext configuration files (like the ones in /etc). It’s not difficult to edit files, but you will do it so often that you need a powerful tool for the job.
阿东
2024/04/27
1780
【Linux】《how linux work》第二章 基本命令和目录层次结构(2)
【Linux】《how linux work》第二章 基本命令和目录层次结构
This chapter is a guide to the Unix commands and utilities that will be referenced throughout this book. This is preliminary material, and you may already know a substantial amount of it. Even if you think you’re up to speed, take a few seconds to flip through the chapter just to make sure, especially when it comes to the directory hierarchy material in 2.19 Linux Directory Hierarchy Essentials.
阿东
2024/03/05
2550
【Linux】《how linux work》第二章 基本命令和目录层次结构
相关推荐
高通量计算框架HTCondor(六)——拾遗
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验