Loading [MathJax]/jax/output/CommonHTML/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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
信息率失真函数与平均互信息
Theorem [Rate-Distortion]. 以小于或等于失真 D 去重构无记忆信源所需的最小信源输出 bit/sym 称为率失真函数 (rate-distortion function),用 R(D) 表示, 记为
timerring
2023/04/12
7980
信息率失真函数与平均互信息
离散信源 R(D)计算及限失真信源编码定理
但要得到它的显式表达式,一般比较困难。通常用参量表达式。即使如此,除简单的情况外实际计算还是困难的, 只能用迭代逐级逼近的方法。
timerring
2023/05/01
6770
离散信源 R(D)计算及限失真信源编码定理
极限熵和冗余度
在信息论中,信息冗余是传输消息所用数据位的数目与消息中所包含的实际信息的数据位的数目的差值。
timerring
2023/02/26
6070
极限熵和冗余度
连续信源的熵与RD
由于连续信源信号幅度取值无限性, 要精确表示这样的信号, 理论上需要无穷个bit才行。即连续信源的绝对熵为
timerring
2023/04/21
6900
连续信源的熵与RD
失真的概念和定义
对于限失真信源, 应该传送的最小信息率是R(D), 而不是无失真情况下的信息熵H(X) , 显然
timerring
2023/04/09
6720
失真的概念和定义
编码生成矩阵与检错监督矩阵
(n,k )线性分组码的构造——依据给定的 k 个信息码元,设计满足编码条件(最小码距、码率)的 n-k个监督码元。
timerring
2023/06/16
6160
编码生成矩阵与检错监督矩阵
自信息的定义与分类
收到某消息获得的信息量=不确定性的减少量=(收到该消息前关于某事件发生的不确定性)-(收到此消息后关于某事件发生的不确定性)
timerring
2023/02/23
1.2K0
自信息的定义与分类
基本线性分组码与性能参数及差错控制
线性分组码是由 (n, k) 形式表示。编码器将一个 k 比特信息分组(信息矢量)转变成一个更长的由给定符号集组成的 n 比特编码分组(编码矢量)。当这个符号集包含 2 个元素 (0 and 1) 时 , 称为二进制编码。
timerring
2023/06/13
1.3K0
基本线性分组码与性能参数及差错控制
编码的基本概念
码符号C表示的是编码的字符集。如二进制编码,c:{0,1} (无特殊说明,本章所有编码都是二进制编码);
timerring
2023/03/01
1K0
编码的基本概念
信息熵的定义及物理含义
注: 信息熵不等于平均获得的信息量(仅是能提供的信息量)。一般情况下获得的信息量是两熵之差,而不是信息熵本身(获得的还是需要根据实际计算)。
timerring
2023/02/23
4310
无失真信源编码详解
定义: 在无失真信源编码中, 编译码过程是可逆的, 即信源符号可以通过编码序列无差错的恢复 ,该编码方式适用于离散信源的编码。
timerring
2023/03/01
8810
无失真信源编码详解
联合熵和条件熵
联合集 X Y \mathbf{X Y}XY 上, 条件自信息I ( y / x ) I(y / x)I(y/x)的平均值定义为条件熵:
timerring
2023/02/23
1.2K0
信道的定义和分类
信道是任何一种通信系统中必不可少的组成部分。任何一个通信系统都可以视为由发送,信道与接收三部分组成。信道通常指以传输媒介为基础的信号通道。
timerring
2023/05/03
6900
信道的定义和分类
循环码的特点与多项式描述
timerring
2023/06/16
4050
循环码的特点与多项式描述
恒参信道特性及其对信号传输的影响
恒参信道 :信道特性不随时间变化或者变化很缓慢,信道特性主要由传输媒介所决定,如传输媒介基本不随时间变化,则它构成的信道属于恒参信道。
timerring
2023/06/09
6650
抽头延迟线信道模型
第一代移动通信系统的关键技术有 ABCD A. 蜂窝网 B. FDMA C. 模拟调制 D. 主要有AMPS和TACS两种制式 第二代移动通信系统的关键技术有 ABCD A. 数字调制(GMSK) B. TDMA/CDMA C. 开始支持数据业务(GPRS) D. 主要有GSM和CDMA1X (IS-95)两种制式 第三代移动通信系统的关键技术有 ABCD A. 直接序列扩频 B. CDMA C. 全面支持数据业务,语音和数据分开 D. 有WCDMA、CDMA2000和TD-SCDMA三种制式 第四代移动通信系统(LTE)的关键技术有 ABCD A. OFDMA B. MIMO C. 支持数据业务,语音加载在数据网上(VoLTE) D. 智能天线、软件定义的无线电(SDR) 第五代移动通信系统(NR)的主要技术 ABCD A. NOMA/FBMC B. Massive MIMO C. 波束分割多址技术(BDMA) D. D2D通信(D: device)
timerring
2023/06/27
4560
抽头延迟线信道模型
离散无记忆与有记忆信源的序列熵
本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:information-theory】,需要的朋友们自取。 文章目录 离散无记忆信源的序列熵 信源的序列熵 离散有记忆信源的序列熵 平稳有记忆N次扩展源的熵 离散无记忆信源的序列熵 马尔可夫信源的特点:无后效性。 发出单个符号的信源 指信源每次只发出一个符号代表一个消息; 发出符号序列的信源 指信源每次发出一组含二个以上符号的符号序列代表一个消息。 当信源无记忆时: \b
timerring
2023/02/26
9300
离散无记忆与有记忆信源的序列熵
BCH码与RS码详解
特点: 它的生成多项式 g(x) 与最小码距之间有密切 的关系, 可以根据所要求的纠错能力 t , 很容易地构 造出 BCH码。
timerring
2023/06/20
8510
BCH码与RS码详解
平均互信息与条件熵
通信系统中若发端的符号为 X 收端的符号为 Y。如果是 一一对应信道, 接收到 Y 后对 X 的不确定性将完全消除: H(X|Y) = 0,一般情况 H(X|Y) < H(X), 即了解 Y 后对 X 的不确定度将减少。
timerring
2023/04/08
7510
平均互信息与条件熵
最大似然译码与维特比卷积译码算法
维特比译码算法是维特比在1967年提出。维特比算法的实质是最大似然译码,但它利用了编码网格图的特殊结构,从而降低了计算的复杂度,与完全比较译码相比,它的优点是使得译码器的复杂性不再是码字序列中所含码元数的函数。
timerring
2023/06/23
6100
最大似然译码与维特比卷积译码算法
相关推荐
信息率失真函数与平均互信息
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验