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

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

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

目录

1. 正文

1.1. 任务划分

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

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

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

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

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

1.2. 任务程序

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

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

#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. 相关

代码和数据地址

上一篇

目录

下一篇

分类: 分布式计算

标签: 分布式计算 , 集群计算 , HTCondor



相关文章
|
机器学习/深度学习 SQL 存储
实时特征计算平台架构方法论和实践
在机器学习从开发到上线的闭环中,实时特征计算是其中的重要一环,用于完成数据的实时特征加工。由于其高时效性需求,数据科学家完成特征脚本离线开发以后,往往还需要工程化团队通过大量的优化才能完成上线。另一方面,由于存在离线开发和工程化上线两个流程,线上线下计算一致性验证成为一个必要步骤,并且会耗费大量的时间和人力。
1055 0
实时特征计算平台架构方法论和实践
|
算法 机器学习/深度学习 数据挖掘
带你读《增强型分析:AI驱动的数据分析、 业务决策与案例实践》之三:预测模型的新技术
本书“深入浅出的原理介绍 + 实际使用的案例”的内容安排能够使得数据分析建模人员从算法原理、数据挖掘知识结构、业务应用方法等方面得到提升,帮助数据分析建模人员开阔眼界、优化知识结构、提升实践技能。
|
3月前
|
分布式计算 负载均衡 Hadoop
高通量计算框架HTCondor(一)——概述
高通量计算框架HTCondor(一)——概述
87 0
|
3月前
|
分布式计算 数据安全/隐私保护
高通量计算框架HTCondor(三)——使用命令
高通量计算框架HTCondor(三)——使用命令
50 0
|
3月前
|
分布式计算 负载均衡 安全
高通量计算框架HTCondor(六)——拾遗
高通量计算框架HTCondor(六)——拾遗
21 0
|
3月前
|
分布式计算 Windows
高通量计算框架HTCondor(五)——分布计算
高通量计算框架HTCondor(五)——分布计算
56 0
|
存储 数据处理 数据库
TDengine 用户案例合集 | 智能环保项目的时序数据处理难点与优化实践
本篇文章汇总了三个典型的智能环保项目的数据架构升级实践,给有需要的企业参考。
213 1
|
机器学习/深度学习 数据采集 传感器
机器学习实战系列[一]:工业蒸汽量预测(最新版本上篇)含数据探索特征工程等
在工业蒸汽量预测上篇中,主要讲解了数据探索性分析:查看变量间相关性以及找出关键变量;数据特征工程对数据精进:异常值处理、归一化处理以及特征降维;在进行归回模型训练涉及主流ML模型:决策树、随机森林,
|
算法 Python
综合能源系统分析的统一能路理论(三):《稳态与动态潮流计算》(Python代码实现)
综合能源系统分析的统一能路理论(三):《稳态与动态潮流计算》(Python代码实现)
112 0
|
机器学习/深度学习 自然语言处理 资源调度
机器学习实战系列[一]:工业蒸汽量预测(最新版本下篇)含特征优化模型融合等
在进行归回模型训练涉及主流ML模型:决策树、随机森林,lightgbm等;在模型验证方面:讲解了相关评估指标以及交叉验证等;同时用lgb对特征进行优化;最后进行基于stacking方式模型融合。