以多进程方式计算斐波那契数?

标签 c fork fibonacci multiprocess

我正在编写多进程斐波那契数计算器,我有一个跟踪斐波那契数的文件,首先进程打开文件并写入第一个斐波那契数(0 和 1),然后执行 fork 及其子进程读取最后一个两个数字将它们相加并将下一个写入文件并关闭文件并再次 fork 此过程继续像 fork 和子进程一样将数字相加并将计算出的数字写入文件,在内部使用 fork 不是一个好的解决方案既不是递归调用,对问题有什么建议吗??

Here is the link of the problem we are talking about multi-process part of the problem which is part 2

http://cse.yeditepe.edu.tr/~sbaydere/fall2010/cse331/files/assignments/F10A1.pdf

最佳答案

假设您以“简单”的方式计算它们(即不使用狡猾的公式),我认为它根本不是并行处理的好选择。

想出复杂度为 O(n) 的解决方案很容易,但每个结果都取决于前一个结果,因此并行化本身就很棘手。我看不到您当前的并行方法有任何好处,因为在每个进程完成自己的工作并 fork 一个 child 以获得下一个数字之后,它基本上就完成了……所以您不妨做 fork child 的工作在现有流程中。

关于以多进程方式计算斐波那契数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3958611/

相关文章:

c - 与信号的简单同步

创建一个新进程来执行ls命令

c - 进程在 C 中的父进程中挂起

ruby-on-rails - 如何修复中止斐波那契数列代码

list - 如何判断一个数字是否在斐波那契数列中

c - 是否可以将变量作为结构成员传递?

c++ - 获取错误信息

c - 有没有办法在 Linux 中使用 DMA 将文件读入内存?

将 double 或 float 转换为整数类型,哪种类型?

c - 在 C 中使用共享内存的斐波那契数列