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

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

作者头像
charlee44
发布于 2020-01-31 03:12:41
发布于 2020-01-31 03:12:41
65300
代码可运行
举报
文章被收录于专栏:代码编写世界代码编写世界
运行总次数: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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
高通量计算框架HTCondor(五)——分布计算
前文提到过,HTCondor是通过condor_submit命令将提交任务的,这个命令需要提供一个任务描述文件。这个任务描述文件详细描述了任务运行的需求情况,如下所示:
charlee44
2020/02/14
8880
高通量计算框架HTCondor(六)——拾遗
如果真正要将HTCondor高通量计算产品化还需要很多工作要做,HTCondor并没有GUI界面,更多更全面的功能在Linux系统下的命令窗口下更方便。
charlee44
2020/02/14
7680
高通量计算框架HTCondor(一)——概述
HTCondor是威斯康星大学麦迪逊分校构建的分布式计算软件和相关技术,用来处理高通量计算(High Throughput Computing )的相关问题。高通量计算中的Throughput应该是吞吐量的意思,也就是调度计算机资源的能力。与高性能计算(HPC)不同,高通量计算(HTC)应对的问题是在高性能的同时能够长时间稳定运行的能力,并充分利用集群或网络内计算资源。长时间计算时,集群或网络内计算资源往往是不可靠的,这中间蕴含了计算资源管理和任务调度的问题。
charlee44
2020/02/14
1.8K0
高通量计算框架HTCondor(二)——环境配置
HTCondor是开源跨平台的分布式计算框架,在其官网上直接提供了源代码和Windows、Linux以及MacOS的安装包。因为平台限制的原因,在Windows下的功能是有所限制的,但其使用也是最直观方便的。为了更加便于了解使用情况,这里我还是采用Windows,建议后期有更多的需求或者基础足够好,可以直接上Linux。
charlee44
2020/02/14
1K0
高通量计算框架HTCondor(三)——使用命令
其中bin目录里面存放了一系列condor_开头的可执行程序,正是通过这些指令程序来实现分布式计算的。其中有个GUI程序condor_birdwatcher.exe,打开后运行界面如下:
charlee44
2020/01/31
1.4K0
C++中fstream_在使用中
C++中处理文件类似于处理标准输入和标准输出。类ifstream、ofstream和fstream分别从类 istream、ostream和iostream派生而来。作为派生的类,它们继承了插入和提取运算符(以及其他成员函数),还有与文件一起使用的成员和构造函数。可将文件<fstream> 包括进来以使用任何fstream。如果只执行输入,使用ifstream类;如果只执行输出,使用 ofstream类;如果要对流执行输入和输出,使用fstream类。可以将文件名称用作构造函数参数。
全栈程序员站长
2022/10/02
6.2K0
C++中fstream_在使用中
开讲啦:Chap 10 对文件的输入输出
表示file1.dat文件存放在D盘中的CC目录下的temp子目录下面,文件标识常被称为文件名,文件名主干的命名规则遵循标识符的命名规则,后缀用来表示文件的性质,如:
石璞东
2021/10/25
7140
【Linux】基础 IO(文件描述符fd & 缓冲区 & 重定向)
💫 那么我们现在有个问题,我们编好了代码,这个文件是不是就打开了 -- 没有,因为我们把代码写好之后,这个还只是一个文本,那是不是把代码编译成可执行程序,文件就打开了 -- 答案也是没有的,把原代码编译成可执行程序仅仅是跑起来了。
IsLand1314
2024/10/23
3900
【Linux】基础 IO(文件描述符fd & 缓冲区 & 重定向)
C++017-C++文件读写应用
在线练习: http://noi.openjudge.cn/ https://www.luogu.com.cn/
IT从业者张某某
2023/10/16
5770
C++017-C++文件读写应用
快速从C过度C++(一):namespace,C++的输入和输出,缺省参数,函数重载
📝前言: 本文章适合有一定C语言编程基础的读者浏览,主要介绍从C语言到C++过度,我们首先要掌握的一些基础知识,以便于我们快速进入C++的学习,为后面的学习打下基础。 这篇文章的主要内容有: 1,命名空间namespace 2,C++的输入和输出 3,缺省参数 4,函数重载
用户11029137
2025/03/07
1680
快速从C过度C++(一):namespace,C++的输入和输出,缺省参数,函数重载
【Linux】重定向与缓冲区
这三个函数 stat、fstat 和 lstat 都是 C 语言中用于获取文件的状态信息(如文件大小、权限、修改时间等)的系统调用。它们用于查询文件或目录的元数据,返回一个 struct stat 结构,结构中包含了该文件的详细信息。
用户11029103
2025/02/25
1390
【Linux】重定向与缓冲区
《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任务
Linux标准I/O库
Linux 标准 I/O(Standard I/O)库提供了一组函数,用于进行高级别的文件输入和输出操作。它建立在底层文件 I/O 系统调用之上,为开发者提供了更方便、更高级别的文件处理方式。以下是一些常用的 Linux 标准 I/O 库函数:
Linux兵工厂
2024/02/17
2670
Linux标准I/O库
C语言的文件操作_C语言调用文件
C文件操作用库函数实现,包含在stdio.h中。 文件使用方式: 打开文件→文件读/写→关闭文件
全栈程序员站长
2022/09/23
9.8K0
C语言的文件操作_C语言调用文件
【Linux基础IO】深入Linux文件描述符与重定向:解锁高效IO操作的秘密
前言:在Linux操作系统的广阔世界中,文件描述符(File Descriptor,简称fd)和重定向是理解并高效利用Linux IO(输入/输出)机制的关键基石。它们不仅是系统编程中不可或缺的概念,也是日常命令行操作中的强大工具。掌握这些概念,将使你能够更深入地理解Linux如何管理文件、进程间的通信以及数据的流动,从而编写出更加高效、健壮的应用程序,同时在系统管理和脚本编写中也能游刃有余
Eternity._
2024/09/24
2560
【Linux基础IO】深入Linux文件描述符与重定向:解锁高效IO操作的秘密
[apue] 标准 I/O 库那些事儿
标准 IO 库自 1975 年诞生以来,至今接近 50 年了,令人惊讶的是,这期间只对它做了非常小的修改。除了耳熟能详的 printf/scanf,回过头来对它做个全方位的审视,看看到底优秀在哪里。
海海
2022/10/05
1.6K0
Linux基础IO全面介绍
原文:https://blog.csdn.net/AI_ELF/article/details/122547439
入门笔记
2022/06/03
4320
Linux基础IO全面介绍
基础I/O--重定向&&缓冲区&&stderr
代码解释: 在这段代码中,使用了 open 函数打开文件,并通过 fd 文件描述符来引用该文件。然后,您使用 printf 和 fprintf 函数向标准输出写入内容,并使用 fflush 函数刷新标准输出缓冲区,确保内容被写入文件。最后,使用 close 函数关闭文件。
南桥
2024/05/26
1160
基础I/O--重定向&&缓冲区&&stderr
【Linux】基础IO ——文件(上)
文件= 内容+属性 对应文件的操作,对内容的操作,对属性的操作 当文件没有被操作的时候,一般在磁盘中 当对文件进行操作的时候,一般在内存中,因为冯诺依曼体系规定 当我们对文件进行操作的时候,文件需要提前加载到内存中,提前加载的是属性 当我们对文件进行操作的时候,文件需要提前加载到内存中,不只有你在load,内存中一定存在大量的不同文件属性
lovevivi
2023/04/28
7880
【Linux】基础IO ——文件(上)
C和C++安全编码笔记:文件I/O
C和C++程序通常会对文件进行读写,并将此作为它们正常操作的一部分。不计其数的漏洞正是由这些程序与文件系统(其操作由底层操作系统定义)交互方式的不规则性而产生的。这些漏洞最常由文件的识别问题、特权管理不善,以及竞争条件导致。
用户7886150
2021/02/17
1K0
推荐阅读
相关推荐
高通量计算框架HTCondor(五)——分布计算
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验