小编Emr*_*koz的帖子

如何在Visual Studio 2010中查看二维数组的所有元素?

我正在Visual Studio 2010中调试我的c ++代码,并希望查看我的数组的内容,比如Q,即17x17.当我插入断点并尝试调试时,我只看到变量"Q".当我把它带到"观察"屏幕并将其重命名为"Q,17"时,我看到一个级别.

但我也希望看到另一个方面.我不能写"Q,17,17".什么是正确的命令?

谢谢...

c++ debugging visual-studio-2010

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

Microsoft并行模式库(PPL)与OpenMP

我想比较PPL和OpenMP的性能,但无法在网上找到详细的调查.我相信没有多少人对PPL有经验.

我正在使用Visual Studio 2010在Windows上开发我的软件,并且不想在短期内将其移植到其他地方.

如果可移植性不是问题,只关注性能,那么您对这两种方法有什么看法?

c++ parallel-processing concurrency openmp ppl

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

选择并行化方案需要考虑什么?

我正在使用c ++为我的计算动力学研究开发一些代码.我的代码解决了稀疏和密集的矩阵,生成网格,并在最微不足道的意义上做类似的操作.我需要并行化我的代码以减少计算时间并为此目的使用OpenMP.

但仔细观察一下商用代码,比如ANSYS CFX,我发现该软件中使用的并行化方案是MPICH2,它是MPI的一种实现方式.

所以你有很多并行化工具/ API:

  • OpenMP的
  • MPI
  • 英特尔线程构建模块
  • 并行线程
  • 微软PPL

我使用了其中一些工具,并使用每个工具在本地计算机上获得100%的CPU使用率.

在选择合适的并行化工具时,我不知道应该注意什么标准.什么样的应用需要哪种工具?上述任何一项可用于研究目的吗?其中哪些主要用于商业软件?

c++ parallel-processing tbb mpi openmp

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

如何解决CUDA Thrust库 - for_each同步错误?

我正在尝试使用CUDA的推力库在CUDA中修改一个简单的动态矢量.但是我在屏幕上出现"launch_closure_by_value"错误,表明错误与某些同步过程有关.

由于此错误,无法进行简单的1D动态数组修改.

导致错误的我的代码段如下.

从.cpp文件我调用setIndexedGrid,它在System.cu中定义

float* a= (float*)(malloc(8*sizeof(float))); 
a[0]= 0; a[1]= 1; a[2]= 2; a[3]= 3; a[4]= 4; a[5]= 5; a[6]= 6; a[7]= 7;
float* b = (float*)(malloc(8*sizeof(float)));
setIndexedGridInfo(a,b);
Run Code Online (Sandbox Code Playgroud)

System.cu的代码段:

void
setIndexedGridInfo(float* a, float*b)
{

    thrust::device_ptr<float> d_oldData(a);
    thrust::device_ptr<float> d_newData(b);

    float c = 0.0;

    thrust::for_each(
        thrust::make_zip_iterator(thrust::make_tuple(d_oldData,d_newData)),
        thrust::make_zip_iterator(thrust::make_tuple(d_oldData+8,d_newData+8)),
        grid_functor(c));
}
Run Code Online (Sandbox Code Playgroud)

grid_functor在_kernel.cu中定义

struct grid_functor
{
    float a;

    __host__ __device__
    grid_functor(float grid_Info) : a(grid_Info) {}

    template <typename Tuple>
    __device__
    void operator()(Tuple t)
    {
        volatile float data = thrust::get<0>(t);
        float pos = data + 0.1;
        thrust::get<1>(t) …
Run Code Online (Sandbox Code Playgroud)

foreach cuda gpgpu thrust

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

如何使用ShellExecute在Windows中使用C++打开html文件?

我正在尝试使用我的代码中的默认浏览器打开一些html文件.

我使用以下代码:

ShellExecute(NULL, "open", "HELP\index.html",
            NULL, NULL, SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)

并包含标题"Windows.h".但ShellExecuter:找不到标识符错误,编译失败.

我使用Microsoft Visual Studio 2010.如何使ShellExecute工作,或者更重要的是,如何从我的代码中打开html文件?

c++ windows visual-c++

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

C++中两个向量之间的元素交换

我有一个有趣的问题.我在这里简化它.

我有一个包含的a = { 13, 56, 76, 24} 向量:另一个向量包含:b = { 2, 74, 16, 29}

我想交换价值观,让我们说562.所以我希望我的数组是:

a = {13, 2, 76, 24} b = {56, 74, 16, 29}

所以问题是:我向我的向量添加值,我push_back不知道这些值在每个向量中的存储位置.所以我知道2矢量中有某处,矢量中b56某处a.我该如何进行此更改?

c++ arrays vector dynamic-arrays

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