前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >高通量计算框架HTCondor(四)——案例准备

高通量计算框架HTCondor(四)——案例准备

作者头像
charlee44
发布于 2020-01-31 03:12:41
发布于 2020-01-31 03:12:41
65000
代码可运行
举报
文章被收录于专栏:代码编写世界代码编写世界
运行总次数:0
代码可运行

目录

  • 1. 正文
    • 1.1. 任务划分
    • 1.2. 任务程序
  • 2. 相关

1. 正文

1.1. 任务划分

使用高通量计算第一步就是要针对密集运算任务做任务划分。将一个海量的、耗时的、耗资源的任务划分成合适粒度的小任务,需要综合考虑资源、数据等多方面因素。HTCondor并不参与这方面的工作,任务划分需要用户自己实现。

默认情况下,HTCondor会把一个CPU核心当成一个计算资源。最理想的情况,就是计算集群网络内所有的集群主机都是同样的配置,数据也是易于划分的,那么可以按照计算机集群内CPU的总核心数,对数据量等分划分。这样,因为同样的数据量同样的计算机资源,进行分布式计算时理论上会同时完成,也就达到了负载均衡

这里就准备了这样的一个任务例子,假设任务已经划分好,已经放到同一个目录中:

0,1,2,..., 15就是划分好的16份数据,每个目录中都存放了数据。所谓计算任务,就是输入一个数据,处理后形成新的数据。所以,每个文件夹都放入了一个input.txt文件,作为计算任务的输入:

实例目的很简单,就是将这些划分好的任务提交到HTCondor,让HTCondor的计算资源分别处理这些数据,并将新的数据返回来。

1.2. 任务程序

既然要进行计算任务,那么不可或缺的就是运行的任务程序了。说到底分布式计算的基础还是单机运算,必须要保证发送的每个任务在单机下就能正确运行,才能谈任务调度的问题。

在这里我用的是一个C/C++的任务程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <iostream>
#include <fstream>
#include <string>
#include <time.h>   

using namespace std;

int main()
{
    fprintf(stdout, "开始运行\n");

    //延时10S
    fprintf(stdout, "延时10S\n");
    time_t first = time(NULL);
    double diff = 0;
    while (diff<10)
    {
        time_t second = time(NULL);
        diff = difftime(second, first);         //计时        
    }

    ifstream infile("input.txt");
    if (!infile)
    {
        fprintf(stderr, "无法读取文件\n");
        return 1;
    }

    string line;
    getline(infile, line);
    

    ofstream outfile("output.dat");
    if (!outfile)
    {
        fprintf(stderr, "无法写出文件\n");
        return 1;
    }

    outfile << "输出内容:\n";
    outfile << line;

    fprintf(stdout, "运行完成\n");

    return 0;
}

可以看到这个程序特别简单,就是延时10秒后,读取input.txt的内容,写出到output.dat中。延时10秒是为了方便显示运行状态。其实不必非要C/C++的程序,只要是能够运行的可执行程序即可,条件是每台机器要有对应的运行环境,否则发送过去的任务会因为无法运行而挂起。

将这个程序编译的可执行程序放到bin目录中,保证在单机的情况下,能够正常运行。

在下一章中,将会介绍如何通过HTCondor框架运行这个实例。

2. 相关

代码和数据地址

上一篇

目录

下一篇

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
前端架构师之10_JavaScript_DOM
第1级DOM(DOM Level 1,或DOM1)。为XML和HTML文档中的元素、节点、属性等提供了必备的属性和方法。结合了Netscape及微软公司开发的DHTML(动态HTML)思想。
张哥编程
2024/12/13
1790
JS之文档对象模型DOM
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk"> <title>History和Location使用</title> </head> <body> <input type="button" value="返回" onclick="history.back();" /> </body> </html> DOM 解析模型,将文档加载到 内存,形成一个树形结构 <html> 就是根节点,每个标签会成为
Java帮帮
2018/03/19
3.4K0
JS之文档对象模型DOM
JavaScript DOM基础
DOM(Document Object Model)即文档对象模型,针对HTML和XML文档的API(应用程序接口)。 一.DOM介绍 DOM中的三个字母,D(文档)可以理解为整个Web加载的网页文档;O(对象)可以理解为类似window对象之类的东西,可以调用属性和方法,这里我们说的是document对象;M(模型)可以理解为网页文档的树型结构。 DOM有三个等级,分别是DOM1、DOM2、DOM3,并且DOM1在1998年10月成为W3C标准。DOM1所支持的浏览器包括IE6+、Firefox、Safa
汤高
2018/01/11
1.4K0
HTML DOM(二):节点的增删改查
       上一篇:HTML DOM(一)        上一篇讲述了DOM的基本知识,从其得知,在DOM眼中,HTML的每个成分都可以看作是节点(文档节点、元素节点、文本节点、属性节点、注释节点,
高爽
2017/12/28
1.7K0
关于DOM的理解
当创建了一个网页并把它加载到web浏览器中时,DOM就悄然而生。浏览器根据网页文档创建一个文档对象。
Tz一号
2020/09/10
1K0
前端之BOM和DOM
BOM(Browser Object Model)浏览器对象模型,它使得JS能够与浏览器进行‘对话’(交互,通过JS对页面内容进行操作)。
GH
2019/12/16
2.8K0
前端之BOM和DOM
前端day13-JS(WebApi)学习笔记(attribute语法、DOM节点操作)
小技巧:如果API写的是Emement复数的形式,也就是后面加了s(Emements)那么它返回的就是一个伪数组 否则就是单个对象,一般只有id才会是单个对象,其他方式获取(标签名 类名)都是伪数组.
帅的一麻皮
2020/04/19
3.1K0
前端day13-JS(WebApi)学习笔记(attribute语法、DOM节点操作)
JavaScript 编程精解 中文第三版 十四、文档对象模型
当你在浏览器中打开网页时,浏览器会接收网页的 HTML 文本并进行解析,其解析方式与第 11 章中介绍的解析器非常相似。浏览器构建文档结构的模型,并使用该模型在屏幕上绘制页面。
ApacheCN_飞龙
2022/12/01
1.5K0
JavaScript 编程精解 中文第三版 十四、文档对象模型
从零开始学习BOM&amp;DOM
ECMAScript,描述了该语言的语法和基本对象,如类型、运算、流程控制、面向对象、异常等。
虎妞先生
2022/09/19
6140
从零开始学习BOM&amp;DOM
前端之HTML DOM操作
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
山河木马
2019/03/05
6090
JavaWeb——JavaScript精讲之DOM、BOM对象与案例实战(动态添加删除表格)
上一博文种讲解了JavaScript基础的ECMAScript,包括基本语法和部分对象,本文中继续讲解JavaScript中比较重要的两部分内容BOM、DOM及事件,后文中有对应的实战练习。
Winter_world
2020/09/25
2.3K0
JavaWeb——JavaScript精讲之DOM、BOM对象与案例实战(动态添加删除表格)
jQuery文档对象模型DOM的实际应用
DOM 在 JavaScript 课程中我们详细的探讨过,它是一种文档对象模型。方便开发者对 HTML 结构元素内容进行展示和修改。在 JavaScript 中,DOM 不但内容庞大繁杂,而且我们开发的过程中需要考虑更多的兼容性、扩展性。
王小婷
2018/12/19
1.2K0
DOM 文档对象模型
HTML 模板<html> <head> <title>我是网站标题</title> </head> <body> <div class="box"> <div class="box1"></div> </div> <div name="xiaoming"></div> <div id="box"></div> </body></html>访问节点通过 id 访问指定节点 getElement
菜园前端
2023/05/10
5160
javascript之DOM操作
http://www.cnblogs.com/kissdodog/archive/2012/12/25/2833213.html
bear_fish
2018/09/19
5560
js 深度解析DOM
因为document是window的一个属性,因为属性都是对象拥有的,所以他是一个object;
贵哥的编程之路
2020/11/03
5.1K0
js 深度解析DOM
E006Web学习笔记-JavaScript(四):DOM
将标记语言文档的各个部分,封装为对象,可以使用这些对象,对标记语言文档进行CRUD(增删改查)的动态操作;
訾博ZiBo
2025/01/06
890
E006Web学习笔记-JavaScript(四):DOM
3-DOM
将标记语言文档(HTML,XML…)的各个部分,封装为对象,可以使用这些对象,对标记语言文档进行CRUD动态操作
Ywrby
2022/10/27
1.4K0
第85节:Java中的JavaScript
后代选择器: 选择器1 选择器2 子元素选择器:选择器1 > 选择器2 选择器分组: 选择器1,选择器2,选择器3{} 属性选择器:选择器[属性名称='属性值']
达达前端
2019/07/03
2.7K0
第85节:Java中的JavaScript
【Java 进阶篇】深入理解 JavaScript DOM Node 对象
在前端开发中,与HTML文档进行交互是一项基本任务。文档对象模型(Document Object Model,简称DOM)为开发者提供了一种以编程方式访问和操作HTML文档的方式。DOM的核心是节点(Node)对象,它代表了文档中的各个部分。本博客将深入探讨JavaScript DOM Node对象,帮助您更好地理解它的作用和如何使用。
繁依Fanyi
2023/10/19
3700
Js DOM
要创建新的 HTML 元素 (节点)需要先创建一个元素,然后在已存在的元素中添加它。
hss
2022/02/25
3.9K0
相关推荐
前端架构师之10_JavaScript_DOM
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验