并行软件?
回答
http://en.wikipedia.org/wiki/Thread_(computer_science)
在计算机科学,从一个 计算机程序的叉 执行结果为两个或更多 同时运行任务的线程。 执行线程和 进程不同于运行 系统到另一个进程,但在大多数情况下, 线程包含在 进程中。 多个线程可以在同一进程内共享 资源和内存等,而 不同进程不共享这些资源。
大多数现代编程语言都以各种方式支持多线程(甚至是最新版本的Javascript)。 :-)
优点和缺点可以取决于任务。如果你需要做很多处理,那么多线程可以帮助你把它分解成更小的工作单元,每个CPU可以同时独立工作。但是,多线程代码的编写和维护通常比单线程代码更复杂。
您仍然可以在只有一个处理器的机器上编写/运行多线程代码。尽管只有一个处理器来执行这些任务,但操作系统将通过快速切换上下文并一次为每个线程执行一些指令来确保它们同时发生。
您可能熟悉的并行任务的一些专用硬件是可在大多数新计算机上找到的GPU。在这段视频中,流言终结者展示出一种单线程CPU上绘制之间的差异,以及多线程GPU:
http://www.youtube.com/watch?v=XtGf0HaW7x4&feature=player_embedded
并行软件可以本机利用计算机上的多个内核/ cpus或有时跨多台计算机。例子包括图形渲染软件和电路设计软件。
对于多处理器感知软件以外的其他缺点并不确定是否会导致CPU浪费。
是“并行软件”需要一个特定的硬件或编程语言?
是和是。
第一个很简单。大多数现代CPU(比m6800更新)具有硬件功能,可以一次执行多个任务,但不一定同时执行两个任务。例如,当定时器中断关闭时,CPU可以保存它正在做的事情,然后开始做其他事情。这些任务同时运行。即使没有这些,你也可以让两台机器之间进行某种连接(比如通过一个空调制解调器适配器进行简单的串行连接),并且它们都可以并行工作在同一个任务上。
大多数新型CPU(不仅仅是现代但最新)的CPU都具有内置的并行计算资源。这些多核CPU实际上可以同时处理两个或多个任务,每个核心有一个任务,并且具有特殊功能使这些任务合作更有效率。
第二个需要特殊的软件工具,如并行语言,在某些方面是并行计算最难的部分。如果您是厨房中唯一的人,那么从一开始到下一个接一个的烹饪方法,直到所有的菜都煮熟为止,做饭时很容易。如果你想通过增加更多的厨师来加快速度,你必须小心一点,不要踩在彼此的脚趾上。
处理这种最简单的方法是使用一个线程库,它提供了一些工具,以便多个任务可以安排不会互相打开。这并不像标记程序那么简单,系统负责处理其余部分,相反,您必须编写每个任务,以便在每个可能会干扰其他任务的地方与任何其他任务进行通信。
- 1. 并行软件设计
- 2. 为xaml合并软件
- 3. 最适合并行的硬件/软件解决方案?
- 4. 微软的CCR vs任务并行库
- 5. C++命令行软件
- 6. 更改软件的行为
- 7. 软件测试FAT执行
- 8. C#开源软件将受益于并行化?
- 9. 通过Flash下载并自动运行软件试用版?
- 10. 为什么plyr软件包不使用我的并行后端?
- 11. 一个软件如何运行另一个软件
- 12. 错误ITMS-90207:软件包不包含可执行软件包
- 13. 更换Golang标准软件包并在
- 14. 签署并发布debian软件包
- 15. 面部识别/合并软件
- 16. PowerShell DSC。下载并安装软件
- 17. 软件xslt调试软件
- 18. PC软件的GPS软件
- 19. 术语:软件界面,软件组件,软件单元,软件模块
- 20. MS Deploy可以执行软件包并进行转换,但不能部署吗?
- 21. Bower无法找到一个软件包并且无法安装新软件包
- 22. 微软称IE9具有并行的JavaScript渲染和执行
- 23. 通过软件包名称执行软件包名称以获取Sql Server存储的软件包
- 24. 如何启用软件收集软件
- 25. 软件批判:开源软件
- 26. 通过Ubuntu软件安装软件包
- 27. 在线软件跟踪软件
- 28. 间谍软件行为信息
- 29. 编译软件包在Windows命令行
- 30. 哪个TeX发行版或软件?
并行性!=并发性。当使用并发时,单核上的性能不会有任何提高(并发可能包括并行性,但并不总是) – Wes 2012-03-18 20:39:50