标签: parallel-processing

Parallel.Foreach vs Foreach用于数据迁移过程

我有一份车辆清单......对于每辆车,我正在做一些移民工作.

foreach (vehicles)
{

1 : Do database table migration for that vehicle
2 : Call an API and save them to database

}
Run Code Online (Sandbox Code Playgroud)

为了提高性能,我将其平行如下:

Parallel.Foreach(vehicles)
{
--same
}
Run Code Online (Sandbox Code Playgroud)
  1. 这是正确的方法吗?因为我的理解是,它将为每个请求的车辆创建新的线程,事情应该快速.

  2. 并行TASK会改进吗?

  3. 保持最大并行数是否好?如果是,如何确定该因素?

c# asp.net parallel-processing performance parallel.foreach

0
推荐指数
1
解决办法
299
查看次数

Python-对数组的所有元素进行操作而没有循环?

我有一个python脚本,它将字符串列表(很长的列表)加载到数组中。我需要对数组的每个元素执行几个操作。我需要对每个元素执行三项操作:(1)计算字符串的长度,(2)将其乘以标量,(3)对其取一个模数。

使用循环非常简单,但是由于数组中有很多元素,我想知道是否有比循环简单的更好的方法。我需要它是快速的,并且遍历数百万个元素似乎不是管理此问题的最有效方法。

有谁知道在这种情况下使用性能优化性能的任何方法Python?穿线?还是我可能没有听说过的数组迭代器运算符?

(我知道这听起来像是一个家庭作业问题,但我不能向您保证。这只是我需要完成的工作的非常简化的版本)。

任何建议将不胜感激!谢谢!

python parallel-processing for-loop

0
推荐指数
1
解决办法
2377
查看次数

用Java覆盖Process类

我是java的新手,我在Java Swing中使用这个多线程应用程序.

我需要创建一个自定义类,它可以生成多个线程并同时执行这些线程.

使用Process生成线程是个好主意吗?

由于无法从ProcessBuilder类扩展,是否有任何其他方法可以将该过程实现为

请分享你的想法.

谢谢.

java parallel-processing swing multithreading process

0
推荐指数
1
解决办法
80
查看次数

无法理解__syncthreads()

这本书引用:

在CUDA中,__syncthreads()语句(如果存在)必须由块中的所有线程执行.当a __syncthreads()放在一个if语句中时,块中的所有线程都会执行包含__syncthreads()或不包含它们的路径.对于if-then-else语句,如果每个路径都有一个__syncthreads()语句,则块中的所有线程都在路径__syncthreads()上执行,或者所有线程then都执行该else路径.这两个__syncthreads()是不同的屏障同步点.如果块中的线程执行then路径而另一个线程执行else路径,则它们将在不同的屏障同步点处等待.他们最终会永远等待对方.程序员有责任编写代码以满足这些要求.

没有给出例子ifif-else-then案例,所以我无法理解这个概念.请用简单的话语解释我的情况.

PS:我是并行编程和CUDA的初学者.

提前致谢 .

c parallel-processing cuda nvidia

0
推荐指数
1
解决办法
133
查看次数

在tcl中生成多个sh脚本使它成为并行进程或子进程?

我从tcl脚本中生成了多个sh(sipp)脚本.我想知道这些脚本将并行运行还是作为子进程运行?因为我想并行运行它.

如果我使用线程扩展,那么我是否需要使用任何其他包?

提前致谢.

parallel-processing multithreading tcl spawn

0
推荐指数
1
解决办法
2117
查看次数

WaitAll之后再次触发任务

HttpClient.GetAsync在Linq中使用或者任何异步方法或任何BCL异步方法Select可能会导致一些奇怪的两次射击.

这是一个单元测试用例:

[TestMethod]
public void TestTwiceShoot()
{
    List<string> items = new List<string>();
    items.Add("1");
    int k = 0;

    var tasks = items.Select(d =>
    {
        k++;
        var client = new System.Net.Http.HttpClient();
        return client.GetAsync(new Uri("http://testdevserver.ibs.local:8020/prestashop/api/products/1"));
    });

    Task.WaitAll(tasks.ToArray());

    foreach (var r in tasks)
    {

    }

    Assert.AreEqual(1, k);           
}
Run Code Online (Sandbox Code Playgroud)

测试将失败,因为k为2.不知何故,程序运行GetAsync两次触发的委托.为什么?

如果我删除foreach (var r in tasks),测试通过.为什么?

[TestMethod]
public void TestTwiceShoot()
{
    List<string> items = new List<string>();
    items.Add("1");
    int k = 0;

    var tasks = items.Select(d =>
    {
        k++;
        var …
Run Code Online (Sandbox Code Playgroud)

c# linq parallel-processing asynchronous task

0
推荐指数
1
解决办法
333
查看次数

MPI的Scatterv操作

我不确定我是否正确理解MPI_Scatterv应该做什么.我有79个项目来分散可变数量的节点.但是,当我使用MPI_Scatterv命令时,我得到了荒谬的数字(好像我的接收缓冲区的数组元素未初始化).以下是相关的代码段:

MPI_Init(&argc, &argv);
int id, procs;

MPI_Comm_rank(MPI_COMM_WORLD, &id);
MPI_Comm_size(MPI_COMM_WORLD, &procs);

//Assign each file a number and figure out how many files should be
//assigned to each node
int file_numbers[files.size()];
int send_counts[nodes] = {0}; 
int displacements[nodes] = {0};

for (int i = 0; i < files.size(); i++)
{
    file_numbers[i] = i;
    send_counts[i%nodes]++;
}   

//figure out the displacements
int sum = 0;
for (int i = 0; i < nodes; i++)
{
    displacements[i] = sum;
    sum += send_counts[i]; …
Run Code Online (Sandbox Code Playgroud)

c++ parallel-processing mpi openmpi

0
推荐指数
1
解决办法
2283
查看次数

并行化矩阵按行和按行使用OpenMP按行计算

对于我的一些家庭作业,我需要通过向量实现矩阵的乘法,按行和列并行化.我确实理解行版本,但我在列版本中有点困惑.

假设我们有以下数据:

Matix时代矢量

行版本的代码:

#pragma omp parallel default(none) shared(i,v2,v1,matrix,tam) private(j)
  {
#pragma omp for
    for (i = 0; i < tam; i++)
      for (j = 0; j < tam; j++){
//        printf("Hebra %d hizo %d,%d\n", omp_get_thread_num(), i, j);
        v2[i] += matrix[i][j] * v1[j];
      }
  }
Run Code Online (Sandbox Code Playgroud)

这里的计算是正确的,结果是正确的.

列版本:

#pragma omp parallel default(none) shared(j,v2,v1,matrix,tam) private(i)
  {
    for (i = 0; i < tam; i++)
#pragma omp for
      for (j = 0; j < tam; j++) {
//            printf("Hebra %d hizo %d,%d\n", omp_get_thread_num(), i, …
Run Code Online (Sandbox Code Playgroud)

c parallel-processing openmp

0
推荐指数
1
解决办法
2582
查看次数

为什么并不运行线程?

我正在运行一个非常简单的多线程程序

主程序

package javathread;


public class JavaThread {


    public static void main(String[] args) 
    {

        JThread t1 = new JThread(10,1);
        JThread t2 = new JThread(10,2);

        t1.run();
        t2.run();

    }
}
Run Code Online (Sandbox Code Playgroud)

JThread.java

package javathread;

import java.util.Random;

public class JThread implements Runnable
{
    JThread(int limit , int threadno)
    {
        t = new Thread();
        this.limit = limit;
        this.threadno = threadno;

    }

    public void run()
    {
        Random generator = new Random();

        for (int i=0;i<this.limit;i++)
        {
            int num = generator.nextInt();

            System.out.println("Thread " + threadno + " : …
Run Code Online (Sandbox Code Playgroud)

java parallel-processing concurrency multithreading

0
推荐指数
1
解决办法
174
查看次数

效率太高 - 并行计算

这只是一个理论问题

在并行计算中,可以实现大于100%的效率吗?

例如效率为125%

+-------------+------+
| Processors  | Time |
+-------------+------+
|          1  | 10s  |
|          2  | 4s   |
+-------------+------+
Run Code Online (Sandbox Code Playgroud)

当并行环境配置错误或代码中存在一些错误时,我不是指算法.

效率定义:https: //stackoverflow.com/a/13211093/2265932

在此输入图像描述

parallel-processing mpi openmpi

0
推荐指数
1
解决办法
851
查看次数