标签: distributed

如何获取有关特定 Dask 任务的信息

我遇到了一个问题,我的分布式集群似乎“挂起” - 例如,任务停止处理,因此积压了未处理的任务,因此我正在寻找某种方法来帮助调试正在发生的事情。

Client一个processing方法可以告诉我每个工作人员当前正在运行哪些任务,但 AFAICS 这是有关对象上可用任务的唯一信息吗Client

我想要的是不仅能够查询处理任务,还能够查询所有任务,包括已处理、正在处理和出错的任务,并且每个任务都能够获取一些统计信息,例如submitted_time和 ,completion_time这将使我能够找出哪些任务正在阻塞集群。

这类似于ipyparallel.AsyncResult

一个很好的事情是能够获得args/kwargs任何给定的任务。这对于调试失败的任务特别有帮助。

目前是否有任何此功能可用,或者有什么方法可以获取我想要的信息?

关于如何调试问题的任何其他建议都将受到极大欢迎。

python distributed dask

3
推荐指数
1
解决办法
1591
查看次数

使用声明性语法在不同节点上运行 Jenkins 并行阶段

设法在同一节点上成功并行运行集成测试,现在我想将它们分布在不同的节点上。在下面的示例中,我希望阶段IT 1IT 2在不同节点上运行,而IT 3在原始节点上运行。通过使用node作为父级stage('IT 1')node子级尝试了几种组合,但两者都出现语法错误。实现此目的的正确语法是什么?

pipeline {

  agent { label '!master' }

  stages {
    stage('Integration Tests') {
      parallel {
        stage('IT 1 (slow)') {
          steps {
            sh 'run-it-1.sh'
          }
        }
        stage('IT 2 (slow)') {
          steps {
            sh 'run-it-2.sh'
          }
        }
        stage('IT 3 (quick)') {
          steps {
            sh 'run-it-3.sh'
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

编辑:使用label而不是node声明性管道的作品。下面的例子:

stage('IT 1 (slow)') {
  agent { label '!master' }
  steps …
Run Code Online (Sandbox Code Playgroud)

parallel-processing distributed jenkins jenkins-pipeline

3
推荐指数
1
解决办法
1万
查看次数

使用Orleans,如何实现分布式计算和分布式数据存储?

我对分布式计算和orleans很陌生,最近对那些\xef\xbc\x8进行了一些研究,不确定orleans是否可以用于新任务。

\n\n

这个任务是,有很多项目属于不同的人,每个项目都有大量的数据。对于每个项目,步骤如下:

\n\n
    \n
  1. 通过计算原始数据得到新的数据。原始数据存储在分布式数据库中,然后新的数据将存储回数据库。MQ或Redis可用于提高性能。
  2. \n
  3. 根据新数据计算汇总值并将汇总值保存回数据库。
  4. \n
\n\n

我的问题是:

\n\n
    \n
  1. 服务器/Grain 负载平衡:没有唯一 ID 的 Grans。最好在所有服务器上运行多个grain以实现负载平衡,每个grain只是从数据库获取数据并进行计算,不需要创建带有id的实例。对于Orleans来说,除了无状态的Grain之外,不允许有没有唯一id的Grain,无状态的Grain只在本地运行。
  2. \n
  3. 长时间运行计算:计算和总结可能需要几秒钟或几分钟才能完成工作,是否建议使用grains\xef\xbc\x9f,似乎文档中不建议使用。
  4. \n
  5. 顺序执行:需要先根据原始数据计算出新值,然后根据新值进行汇总。这意味着用于汇总的grain必须在所有用于计算的grain完成之后才运行。
  6. \n
  7. 数据缓存: Grains通过本地网络从数据库获取数据并将数据保存到数据库,对于orleans是否有减少数据传输的建议\xef\xbc\x9f
  8. \n
\n

.net distributed computation orleans

3
推荐指数
1
解决办法
1345
查看次数

具有多个工作人员的可迭代 pytorch 数据集

所以我有一个比我的内存更大的文本文件,我想在 PyTorch 中创建一个逐行读取的数据集,这样我就不必将其全部加载到内存中。我发现 pytorchIterableDataset作为我的问题的潜在解决方案。它仅在使用 1 个工作人员时按预期工作,如果使用多个工作人员,则会创建重复的记录。让我给你看一个例子:

有一个testfile.txt包含:

0 - Dummy line
1 - Dummy line
2 - Dummy line
3 - Dummy line
4 - Dummy line
5 - Dummy line
6 - Dummy line
7 - Dummy line
8 - Dummy line
9 - Dummy line
Run Code Online (Sandbox Code Playgroud)

定义一个IterableDataset:

0 - Dummy line
1 - Dummy line
2 - Dummy line
3 - Dummy line
4 - Dummy line
5 - Dummy line
6 - Dummy line …
Run Code Online (Sandbox Code Playgroud)

python distributed deep-learning pytorch

3
推荐指数
2
解决办法
8981
查看次数

服务器客户端Java分布式应用程序

我必须设计一个由一个服务器(用Java开发)和一个或多个远程GUI客户端(带有Windows的Swing应用程序)组成的分布式应用程序.

如前所述,客户端是Swing GUI应用程序,可以连接到服务器以接收和发送数据.通信是双向的(服务器<=>客户端).通过网络发送的数据主要由我的域逻辑对象组成.

两个简短的例子:客户端调用服务器以接收数据以填充窗口内的表; 服务器调用客户端以发送数据以刷新特定的小部件(如按钮).

服务器和客户端之间传输的数据量和网络呼叫的频率不是特别高.

您建议我使用哪种技术进行服务器 - 客户端通信?

我想到了一种适合我的技术,但我想知道你的意见.

非常感谢.

java swing distributed network-programming

2
推荐指数
1
解决办法
2005
查看次数

编写可伸缩的Web服务服务器的最佳语言/库选择是什么?

我参与了一个编写游戏传播和服务平台的项目,这将使游戏开发者能够轻松地外包游戏发布和更新,以及提供多人/社区的某些部分,如成就,排名,朋友等. web服务,采用SOAP或REST API的形式.

我不确定它在获得市场份额方面的可行性,但是应该编写应用程序,以便横向扩展以吸收任何数量的可能用户.由于该项目仍处于早期阶段,因此对所使用的语言和技术有一定程度的影响.

到目前为止,我的研究已经将选择范围缩小到Erlang或基于JVM的语言.
Erlang因其专注于可扩展和容错的分布式应用程序以及成熟的跟踪记录而广为人知,但另一方面,它的库生态系统远没有JVM那么丰富.另一方面,JVM语言享有一个拥有众多库的大社区,其中许多都致力于提供分布式和可靠的服务,例如Terracota或Akka(这似乎是受到Erlang的启发,尽管我不知道有多少它接近并希望听到它的力量).
由于语言生产力与平台强度和可靠性同等重要,如果我使用JVM,我会倾向于Scala或Clojure而不是Java.当然,如果你认为还有另一种语言(JVM或非语言)更适合这样的任务,我很想知道它.

我不想阅读语言的酷炫功能的清单列表,因为我可以自己谷歌,我宁愿对你自己编写这样一个应用程序的经历感兴趣(有点像这些博客的链接 - 链接)虽然不仅涉及原始性能,还涉及语言和库问题.

我想听听您(或贵公司)对这类项目的语言和技术选择是什么,这种选择的动机是什么,您使用所选平台的经历是什么,并最终实现了它.
我们将非常感谢所有的见解; )

erlang distributed scala clojure akka

2
推荐指数
1
解决办法
495
查看次数

MPI_SEND在MPI_BARRIER之后停止工作

我正在使用C/MPI构建分布式Web服务器,在我的代码中第一个MPI_BARRIER之后,点对点通信似乎完全停止工作.标准C代码在屏障之后工作,所以我知道每个线程都通过屏障.在屏障之前,点对点通信也可以正常工作.但是,当我将在屏障之前处理线路的相同代码复制粘贴到屏障之后的线路时,它会完全停止工作.SEND将永远等待.当我尝试使用ISEND时,它会通过该行,但永远不会收到消息.我一直在谷歌上搜索这个问题,每个遇到MPI_BARRIER问题的人都被告知屏障工作正常并且他们的代码是错误的,但我不能为我的生活弄清楚为什么我的代码是错误的.什么可能导致这种行为?

这是一个示例程序,用于演示:

#include <mpi.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
  int procID;
  int val;
  MPI_Status status;

  MPI_Init(&argc, &argv);
  MPI_Comm_rank(MPI_COMM_WORLD, &procID);
  MPI_Barrier(MPI_COMM_WORLD);

  if (procID == 0)
  {
    val = 4;
    printf("Before send\n");
    MPI_Send(&val, 1, MPI_INT, 1, 4, MPI_COMM_WORLD);
    printf("after send\n");
  }

  if (procID == 1)
  {
    val = 1;
    printf("before: val = %d\n", val);
    MPI_Recv(&val, 1, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status);
    printf("after: val = %d\n", val);
  }

  MPI_Finalize();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

if在屏障之前移动两个语句会导致此程序正确运行.

编辑 - 似乎第一次通信,无论何种类型,都可以工作,并且所有未来的通信都会失败.这比我最初想的要宽泛得多.如果第一次通信是障碍或其他消息,则未来通信无法正常工作并不重要.

webserver distributed mpi send barrier

2
推荐指数
1
解决办法
546
查看次数

GitHub如何托管源代码?

我正在研究项目托管网站的工作原理; 特别是我想知道他们在哪里举办他们的项目,我非常有兴趣了解GitHub在哪里举办我们的项目.

  • 他们有中央服务器吗?

  • 他们使用的是分布式系统吗?

  • 任何类似P2P的系统云都基于?

任何推荐的链接,了解GitHub如何托管项目.我发现"Git是一个分布式系统"是什么意思呢?这个怎么运作?

distributed p2p github cloud-hosting

2
推荐指数
1
解决办法
1750
查看次数

LevelDB(RocksDB)有哪些CAP类型?

在评估几个分布式系统的过程中,我遇到了CAP-Theorem.不幸的是,我找不到LevelDB的分类或更具体的RocksDB.

以下是实际问题:LevelDB/RocksDB是什么类型的帽子类型?为什么?

distributed leveldb cap-theorem rocksdb

2
推荐指数
1
解决办法
596
查看次数

在分布式张量流中使用Between-Graph复制提高性能

我已经完成了这个 答案,但它没有给出在Between-Graph复制中选择多个客户端以提高性能的基本原理.与In-Graph复制相比,如何使用Between-Graph复制提高性能?

distributed tensorflow

2
推荐指数
1
解决办法
305
查看次数