小编fer*_*rer的帖子

并行化因子计算

我想编写一个使用并行计算(Open MP 库)计算整数阶乘的程序。

显然,下面的程序存在竞争条件。

// Each loop iteration writes a value that a different iteration reads.
#pragma omp parallel for
for (i=2; i < 10; i++)
{
   factorial[i] = i * factorial[i-1];
}
Run Code Online (Sandbox Code Playgroud)

我在某处读到 pow 和阶乘计算绝不能并行完成。那么,这是真的,还是可以修改上述程序(在 C 中,使用 OPenMP 库)以并行计算阶乘?

c parallel-processing openmp factorial

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

使用GDB进行调试

我正在尝试从ns-3(网络仿真软件)程序中获取错误。

我在gdb下运行它:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff4850195 in ns3::MpTcpBulkSendApplication::StartApplication (this=0x706850) at ../src/applications/model/mp-tcp-bulk-send-application.cc:170
170       m_socket->Bind();
(gdb) bt
#0  0x00007ffff4850195 in ns3::MpTcpBulkSendApplication::StartApplication (this=0x706850) at ../src/applications/model/mp-tcp-bulk-send-application.cc:170
#1  0x00007ffff09f9b45 in ns3::EventImpl* ns3::MakeEvent<void (ns3::Application::*)(), ns3::Application*>(void (ns3::Application::*)(), ns3::Application*)::EventMemberImpl0::Notify() (this=0x62f440) at ./ns3/make-event.h:94
#2  0x00007ffff02e90ef in ns3::EventImpl::Invoke (this=0x62f440) at ../src/core/model/event-impl.cc:45
#3  0x00007ffff02ee3a9 in ns3::DefaultSimulatorImpl::ProcessOneEvent (this=0x6d2d00) at ../src/core/model/default-simulator-impl.cc:141
#4  0x00007ffff02ee7ac in ns3::DefaultSimulatorImpl::Run (this=0x6d2d00) at ../src/core/model/default-simulator-impl.cc:194
#5  0x00007ffff02e9ff5 in ns3::Simulator::Run () at ../src/core/model/simulator.cc:161
#6  0x0000000000410640 in main (argc=1, argv=0x7fffffffdc58) at ../scratch/doordi3.cc:188
Run Code Online (Sandbox Code Playgroud)

我不明白发生了什么,是什么导致了错误。任何帮助都将受到欢迎。

谢谢。

此函数是发生错误的地方:

// Application Methods
void …
Run Code Online (Sandbox Code Playgroud)

c++ gdb tcp ns-3 mptcp

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

标签 统计

c ×1

c++ ×1

factorial ×1

gdb ×1

mptcp ×1

ns-3 ×1

openmp ×1

parallel-processing ×1

tcp ×1