小编pau*_*ago的帖子

CUDA:我如何使这个代码并行?

我正在努力使代码并行运行(CUDA).简化的代码是:

float sum = ...         //sum = some number
for (i = 0; i < N; i++){
    f = ...             // f = a function that returns a float and puts it into f
    sum += f;
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是sum+=f因为它需要sum在线程之间共享.我__shared__在声明sum(__shared__ float sum)时尝试使用该参数,但这不起作用(它没有给我正确的结果).我也听说过减少(并知道如何在OpenMP上使用它),但不知道如何在这里应用它.

任何帮助将不胜感激.谢谢!

parallel-processing cuda reduction

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

关于Java语法的基本问题

我正在尝试理解以下有效的Java代码.我有两个问题,在代码中有注释.

class C {
  C x;  //1.) why is something like x = new C(); not required here?  Does this 
        //mean x refers to this current class of C?
  int f;
  void run(boolean b, int x) {
    C y;
    y = new C(); 
    if (b) { this.bump(y,x); } //2.) Is "this" in this.bump necessary?  Likewise,
                               //this.bump(this.y,x) would be equivalent right?
    else { f = this.x.f + 1; }  
  }
  void bump(C z, int j) {
    z.f=j;
  }
  }
Run Code Online (Sandbox Code Playgroud)

谢谢,抱歉这些基本问题

java

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

Twisted:在connectTCP之后关闭连接而不会丢失其他连接

我是Twisted的新手,我正在试图弄清楚如何实现以下内容.我有一个服务器,它接收来自客户端的消息.但是,此服务器在收到消息后会将消息从客户端发送到另一台服务器.所以它看起来像:

Client --->   Server1  --->   Server2
Run Code Online (Sandbox Code Playgroud)

所以Server1本质上既充当服务器又充当客户端.但是,在Server1向Server2发送信息后,我想断开Server1与Server2的连接.我不知道怎么能这样做.

我现在所做的是客户端向Server1发送信息.然后我稍微修改输入,然后reactor.connectTCP()成功连接并向Server2发送信息.我的麻烦是如何在不必完全关闭Server1的情况下关闭连接.我尝试使用transport.loseConnection( )但是当它从Server2断开连接时关闭Server1.

我正在考虑reactor.spawnProcess()以某种方式使用,但我无法让它工作.从我看到的,当我关闭连接时,它关闭了进程,所以如果我可以使用另一个进程connectTCP,它不应该影响其他进程.

这是我的代码

import time, datetime
import re
from twisted.internet import stdio, reactor, protocol
from twisted.protocols import basic

result = 'The AT message is unavailable (no previous talk with client)'

class DataForwardingProtocol(protocol.Protocol):
    def __init__(self):
        self.output = None
        self.normalizeNewlines = False

    def dataReceived(self, data):
        if self.normalizeNewlines:
            data = re.sub(r"(\r\n|\n)", "\r\n", data)
        if self.output:
            self.output.write(data)

class StdioProxyProtocol(DataForwardingProtocol):
    global result
    def connectionMade(self):
        inputForwarder = DataForwardingProtocol()
        inputForwarder.output = self.transport
        inputForwarder.normalizeNewlines …
Run Code Online (Sandbox Code Playgroud)

python tcp twisted

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

memcmp比较数组的片段(删除重复)

我已经研究了一段时间(在C中)并且无法解决这个问题.我有一个包含字符数组的缓冲区.我已经使用qsort对数组进行排序,现在它们都处于正确的顺序.我现在需要删除重复项(或者只打印出没有重复的列表).有一点需要注意:字符被分为N个字符组(用户给出的N).所以它不仅仅是将一个字母与另一个字母进行比较; 它将它们的组相互比较.

例如:如果输入是AADDBBEECCEE并且用户给出的N是2,则结果将是AABBCCDDEE(其中一个EE已被删除).

我知道我必须使用memcmp,但我对语法感到困惑.我尝试着:

i=0;
int result;
int k;
while(i<bufferSize-nValue){
    result = memcmp(buffer[i], buffer[i+nValue], nValue);
    if(result==0){
       i=i+nValue;
    }
    else{
       for(k=0; k<nValue; k++){
          printf("%c",buffer[i]);
          i++;
        }
     }
 }
Run Code Online (Sandbox Code Playgroud)

其中buffer是数组,nValue是N,bufferSize是数组中元素的总数.运行代码时我不断出现分段错误.

谢谢大家的帮助!

c qsort memcmp

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

Ocaml定点实施

我试图弄清楚如何在Ocaml中实现定点迭代。也就是说,给定一个函数f和一个x,我想计算最终值是多少f(f(f(x)...))

因此,例如,如果我的函数是x/2和my x=50,我的答案应该为0。

到目前为止,我有

 let rec computed_fixed_point eq f x =
        if (x == f x) then 
            x
        else
            computed_fixed_point eq f (f x)
Run Code Online (Sandbox Code Playgroud)

这适用于函数x/2x=50(给我0),但是对于变为无穷大或非0的函数,它似乎不起作用。

另一个可以给我一些建议吗?谢谢!

ocaml fixed-point-iteration

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

getline(cin,var)不工作!

由于某些奇怪的原因,getline()函数无法正常工作.我通过递归我的程序循环(返回main();).第一次运行以下代码,没关系.

cout << "Enter a phrase: ";
string user;
getline(cin, user);
Run Code Online (Sandbox Code Playgroud)

但是,在调用递归之后,程序会跳过允许我键入的步骤.结果是字符串用户为空.有什么想法吗?

谢谢.

c++ string recursion getline

0
推荐指数
2
解决办法
1392
查看次数

单链表C++

嘿伙计们,我正在研究期中考试,正在努力尝试使用单一链表创建一个简单的程序.我想要它做的是在列表中插入"1","2","3","4"并打印出来.请看下面的代码:

#include <iostream>
#include <string>
using namespace std;

class node{
public:
    node(int data);
    friend class slist;
private:
    int data;
    node *next;
};

node::node(int data){
    data = data;
    next = NULL;
}

class slist{
public:
    slist(){
        head = NULL;
    }
    void insert(int item);
    void output();

private:
    node* head;
};   

void slist::insert(int item){
    node* newnode = new node(item);
    if(head == NULL)
    {
        head = newnode;
    }
    else
    {
        newnode->next = head;
        head = newnode;
    }
}

void slist::output(){
    node* p = head; …
Run Code Online (Sandbox Code Playgroud)

c++ pointers linked-list

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

Java JPanel/GUI内容有时仅在运行时出现

我是Java编程的新手,但我已经做了一段时间的C++.整个GUI对我来说都是新的.我创建了两个JPanels并使用FlowLayout将它们添加到JFrame.当我运行该程序时,我得到http://imageshack.us/photo/my-images/43/36213853.jpg/ 而不是 http://imageshack.us/photo/my-images/88/86682510.jpg / 只有一些时候.其他时候,由于某种原因,内容显得很好,当我在窗口为空白时调整窗口大小时,内容显示正常.

我不确定是什么问题给了我这种不一致!

任何帮助,将不胜感激.谢谢!

java user-interface jpanel jframe flowlayout

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

ocam中的"和"函数

我正在开发一个ocaml项目,我正在学习语法.我看到了一个程序,格式如下:

 let foo1 = function
    |(x, y) -> foo2 (x,y) z
 and foo2 a s=
    (*stuff in here*)
Run Code Online (Sandbox Code Playgroud)

我很关心and那里的情况.我试着在网上寻找可能意味着什么,但我似乎无法找到任何东西.它也可能只是一个错字...任何建议将不胜感激.谢谢!

ocaml function

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