标签: parallel-processing

原子或巨大的

如果您打算在C#中编写一个非常并行的应用程序,那么构建非常小的东西会更好

20个小班,40个更大的班级,共计60个,总共120个

或巨大的:

单独制作这60个课程(仍然考虑到可重用性).

所以在#2中,这60个类可以包含处理事物而不是其他类的方法.

.net c# parallel-processing

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

二维阵列的Cuda减少

我想计算Cuda中整个图像的平均值.为了测试2D数组的减少效果,我在下面编写了这个内核.最终输出o​​应该是所有图像值的总和.输入g是2D阵列,每个像素的值为1.但是这个程序的结果是总和为0.对我来说有点奇怪.

我在本教程中模仿1D阵列的减少http://developer.download.nvidia.com/compute/cuda/1.1-Beta/x86_website/projects/reduction/doc/reduction.pdf我写这个2D表格.我是Cuda的新手.欢迎提出有关潜在错误和改进的建议!

只需添加一条评论.我知道计算一维数组的平均值是有意义的.但我想利用更多并测试更复杂的还原行为.这可能不对.但只是一个考验.希望任何人都能给我更多关于减少常见做法的建议.

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

cudaEvent_t start, stop;
float elapsedTime;

__global__ void 
reduce(float *g, float *o, const int dimx, const int dimy)
{
extern __shared__ float sdata[];

unsigned int tid_x = threadIdx.x;
unsigned int tid_y = threadIdx.y;

unsigned int i = blockDim.x * blockIdx.x + threadIdx.x;
unsigned int j = blockDim.y * blockIdx.y + threadIdx.y; 

if (i >= dimx || j >= dimy)
    return;

sdata[tid_x*blockDim.y + tid_y] = g[i*dimy + j];

__syncthreads(); …
Run Code Online (Sandbox Code Playgroud)

parallel-processing cuda reduction

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

使用LINQ获取1000

好吧,我的linq技能不是很好,所以我试着做以下事情.

说我有6000条记录(电子邮件地址)我想添加前1000个添加到密件抄送,发送,下一个1000添加到密送,发送,取1000添加到密送,发送等....

我开始打字,

string[] files = System.IO.Directory.GetFiles(@"C:\Mail\ ", "*.csv");

Parallel.ForEach(files, currentFile =>
{
    string filename = currentFile;
    StreamReader reader = new StreamReader(filename);
    var emailList = new List<String>();
    while (reader.Peek() >= 0)
    {
        emailList.Add(reader.ReadLine());
    }
    \\Here is where I need to do the linq?
    IEnumerable<string> list = emailList

    var message = new System.Net.Mail.MailMessage();
    foreach (var s in list)
    {
        MailAddress mailAddress = new MailAddress(s);
        message.Bcc.Add(mailAddress);
    }

    message.Subject = txtSubject.Text;
    message.From = new System.Net.Mail.MailAddress(txtFrom.Text);
    message.Body = txtMessage.Text;
    message.IsBodyHtml = true;
    var smtp …
Run Code Online (Sandbox Code Playgroud)

c# linq parallel-processing enumerable

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

有谁知道如何运行并行Python应用程序?

我想在我的项目中使用Python,但我需要在一组资源上分配计算.

python parallel-processing

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

如何进行并行 http.Get 查询

我正在尝试并行进行 http 查询,然后等待所有查询完成:

  g1, _ := go http.Get('http://example.com/1')
  g2, _ := go http.Get('http://example.com/2')

  res1 := g1.wait() or { panic(err) }
  res2 := g2.wait() or { panic(err) }

  data1 := json.decode(ApiResult, res1.text) or { panic(err) }
  data2 := json.decode(ApiResult, res2.text) or { panic(err) }
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

src/main.go:159:11: syntax error: unexpected go, expecting expression
Run Code Online (Sandbox Code Playgroud)

parallel-processing go go-http

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

Threading.Task.Parallel.For中的C#Bug?

Parallel.For中有这个错误吗?

   public class DataPoint
        {
            public int Game { get; set; }
            public byte Card { get; set; }
            public byte Location { get; set; }
            public DataPoint(int g,byte c,byte Loc)
            {
                Game = g;
                Card = c;
                Location = Loc;
            }
            public override string ToString()
            {
                return String.Format("{0} {1} {2}",Game,Card,Location);
            }
        }
Run Code Online (Sandbox Code Playgroud)

它必须是Parallel.For中的错误

private static System.Collections.Concurrent.ConcurrentBag<DataPoint> FillData()
    {
        var points = new System.Collections.Concurrent.ConcurrentBag<DataPoint>();
        long c = 32768;
        long z = 0;
        Parallel.For(z, c, (i) =>
        {
            points.Add(new DataPoint( rand.Next(1, …
Run Code Online (Sandbox Code Playgroud)

c# parallel-processing task-parallel-library

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

使用Parallel.For的OutOfRangeException

好的,所以我有一个工作正常的程序.在其中有一个可以并行化的for循环.所以我曾经Parallel.For这样做过.它运行了一两次,但其他时候有以下异常:

未指定的错误发生了一个或多个错误

没有进一步的信息,只有这个有用的信息 任何人都知道可能会发生什么?

编辑:好的,所以我把它钉在一个超出范围的例外.事实证明我在初始化之前访问了数组元素,这似乎是竞争条件.我有这个:

 Parallel.For(0, 4, (i, state) =>
        {
            levelTwoPermutationObjects.Add(new permutationObject());
            levelTwoPermutationObjects[i].element = number;
            levelTwoPermutationObjects[i].DoThings();
         });
Run Code Online (Sandbox Code Playgroud)

这使第二和第三行访问一个显然尚不存在的元素.我将元素初始化程序移出并行循环(以便在访问之前初始化数组),现在它可以正常工作.

迭代几乎是彼此独立的,除了Add()部分,显然依赖于它之前是否有另一个元素.

c# parallel-processing multithreading

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

如何根据特定条件获取data.table列名?

我有一个data.table对象resultList,其中包含名为的列"V1:V128"和一些行。我想获取那些满足条件的列的名称,例如

lapply(.SD, mean) < a
Run Code Online (Sandbox Code Playgroud)

我尝试这样做:

names(resultList[, lapply(.SD, mean) < 0])
Run Code Online (Sandbox Code Playgroud)

但我没有任何效果。什么代码实现这个?

第二个问题 - 是否可以使用parLapply代替lapplyfor data.table(例如,使用parLapply(cl, .SD, mean)代替lapply(.SD, mean))?

parallel-processing r data.table

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

java IntStream并行reduce

并行运行时 a==b 为何为 false 但与组合器一起使用时却有效?

public class test {

 public static int cal(final int i) {
       return 1;
 }
 
 public static void main(String args[]) {

   int a = IntStream.range(0, 3).reduce(0, (abc, cde) -> abc + cal(cde));
   int b = IntStream.range(0, 3).parallel().reduce(0, (abc, cde) -> abc + cal(cde));
   System.out.println(a == b); // false

   int c = List.of(0, 1, 2).stream().parallel().reduce(0, (abc, cde) -> abc + cal(cde), Integer::sum);
   System.out.println(a == c); // true
  }
}
Run Code Online (Sandbox Code Playgroud)

java parallel-processing stream parallelstream

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

与 list.stream() 相比,为什么 list.parallelStream() 的性能要差得多?

我使用时的性能list.parallelStream()比使用时差得多list.stream()。您认为为什么会发生这种情况?顺便说一句,这是Java 17,我的CPU 是桌面级的 i5。

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.Period;
import java.time.chrono.ChronoPeriod;
import java.time.chrono.HijrahChronology;
import java.time.chrono.HijrahDate;
import java.time.chrono.IsoChronology;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Random;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class App {
    public static void main(String[] args) throws Exception {
        int size = 1;
        List<Integer> list = null;
        long startTimeN;
        long endTimeN;
        long startTimeP;
        long endTimeP;
        long normalStreamCheckedSize;
        long normalStreamTime;
        long parallelStreamCheckedSize;
        long parallelStreamTime; …
Run Code Online (Sandbox Code Playgroud)

java parallel-processing concurrency java-stream java-17

-4
推荐指数
1
解决办法
357
查看次数

港口R进入库达

我有一个fun1写入的函数R需要很长时间才能运行.我需要多次运行所述函数.

我已经完成了关于R在显卡上运行程序的一些阅读,并且只提出了一些可以运行非常特定功能的程序包(大多数矩阵操作).

我的问题是:有没有办法fun1在显卡上运行或任何用户编写的功能(并行化速度).比如R可以安装一个CUDA解释器,或者也许是R为cuda 编译函数的方法,这样我所要做的就是写一些Cuda/C来执行我最初编写的函数R

任何事情都有帮助

parallel-processing r data-analysis

-5
推荐指数
1
解决办法
141
查看次数

什么是多线程程序,它是如何工作的?

什么是多线程程序,它是如何工作的?我读了一些文件,但我很困惑.我知道代码是逐行执行的,但我无法理解程序如何管理它.
一个简单的答案将被赞赏.#例子请(只有动画!)

c# language-agnostic parallel-processing multithreading

-5
推荐指数
2
解决办法
801
查看次数