📝 并行算法教程
13篇技术文档📅  最后修改于: 2020-12-13 15:11:42        🧑  作者: Mango
并行算法可以在许多不同的处理设备上同时执行,然后组合在一起以获得正确的结果。并行算法在快速处理大量数据中非常有用。本教程介绍了并行算法的设计和分析。此外,它还解释了并行算法中遵循的模型,其结构和实现。本教程将帮助计算机科学专业的本科生学习并行算法的基础到高级主题。先决条件在本教程中,所有主题都已从基础级别进行了解释。因此,初学者可以很容易地理解本教程。但是,如果您具有编写顺序算法的先验知识,则在某...
📅  最后修改于: 2020-12-13 15:12:17        🧑  作者: Mango
算法是一系列步骤,这些步骤从用户那里获取输入,并经过一些计算后产生输出。并行算法是一种算法,可以在不同的处理设备上同时执行几条指令,然后组合所有单独的输出以产生最终结果。并发处理计算机的便捷可用性以及Internet的发展改变了我们存储和处理数据的方式。我们生活在一个时代和时代,那里有大量可用的数据。每天,我们都会快速处理大量需要复杂计算的数据。有时,我们需要从同时发生的相似或相互关联的事件中获取...
📅  最后修改于: 2020-12-13 15:12:48        🧑  作者: Mango
对算法的分析有助于我们确定算法是否有用。通常,基于执行时间(时间复杂度)和所需的空间量(空间复杂度)来分析算法。由于我们拥有价格合理的复杂存储设备,因此存储空间不再是问题。因此,空间复杂性没有那么重要。并行算法旨在提高计算机的计算速度。为了分析并行算法,我们通常考虑以下参数-时间复杂度(执行时间),使用的处理器总数,以及总计花费。时间复杂度开发并行算法的主要原因是减少了算法的计算时间。因此,评估算...
📅  最后修改于: 2020-12-13 15:13:22        🧑  作者: Mango
通过考虑用于划分数据和处理方法的策略并应用适当的策略来减少交互,来开发并行算法的模型。在本章中,我们将讨论以下并行算法模型-数据并行模型任务图模型工作池模型主从模型生产者消费者或管道模型混合模型数据并行在数据并行模型中,将任务分配给进程,并且每个任务对不同的数据执行相似类型的操作。数据并行性是单个操作应用于多个数据项的结果。数据并行模型可以应用于共享地址空间和消息传递范例。在数据并行模型中,可以通...
📅  最后修改于: 2020-12-13 15:14:13        🧑  作者: Mango
并行随机访问机器(PRAM)是一个模型,大多数并行算法都考虑使用该模型。在这里,多个处理器连接到单个内存块。一个PRAM模型包含-一组类似类型的处理器。所有处理器共享一个公共存储单元。处理器之间只能通过共享内存进行通信。内存访问单元(MAU)将处理器与单个共享内存连接。在此,n个处理器可以在特定的时间单位内对n个数据执行独立的操作。这可能会导致不同处理器同时访问相同的内存位置。为了解决此问题,在P...
📅  最后修改于: 2020-12-13 15:14:41        🧑  作者: Mango
要正确应用任何算法,选择合适的数据结构非常重要。这是因为与对另一数据结构执行的相同操作相比,对数据结构执行的特定操作可能会花费更多时间。示例-要使用数组访问集合中的第i个元素,可能需要花费恒定的时间,但是通过使用链表,执行相同操作所需的时间可能变为多项式。因此,必须考虑要执行的操作的体系结构和类型来完成数据结构的选择。以下数据结构是并行编程中常用的-链表数组超立方体网络链表链表是一种数据结构,具有...
📅  最后修改于: 2020-12-13 15:15:08        🧑  作者: Mango
为并行算法选择合适的设计技术是最困难也是最重要的任务。大多数并行编程问题可能有多个解决方案。在本章中,我们将讨论并行算法的以下设计技术-分而治之贪婪法动态编程回溯分界线性规划分治法在分而治之的方法中,问题分为几个小子问题。然后,将子问题递归求解并组合起来,以解决原始问题。分而治之的方法在每个级别涉及以下步骤-划分-原始问题分为子问题。征服-子问题递归解决。合并-将子问题的解决方案合并在一起,以获得...
📅  最后修改于: 2020-12-13 15:15:42        🧑  作者: Mango
矩阵是一组以固定数量的行和列排列的数字和非数字数据。矩阵乘法是并行计算中的重要乘法设计。在这里,我们将讨论在诸如mesh和hypercube之类的各种通信网络上矩阵乘法的实现。 Mesh和hypercube具有更高的网络连接性,因此与环网等其他网络相比,它们允许更快的算法。网状网络一组节点形成p维网格的拓扑称为网状拓扑。在这里,所有边缘都平行于网格轴,并且所有相邻节点之间都可以通信。节点总数=(行...
📅  最后修改于: 2020-12-13 15:16:07        🧑  作者: Mango
排序是将元素按特定顺序(即升序,降序,字母顺序等)排列在组中的过程。在这里,我们将讨论以下内容-枚举排序奇偶换位排序并行合并排序超快速排序对元素列表进行排序是非常常见的操作。当我们必须对大量数据进行排序时,顺序排序算法可能不够高效。因此,在分类中使用并行算法。枚举排序枚举排序是一种通过查找已排序列表中每个元素的最终位置来排列列表中所有元素的方法。通过将每个元素与所有其他元素进行比较并找到具有较小值...
📅  最后修改于: 2020-12-13 15:16:32        🧑  作者: Mango
搜索是计算机科学中的基本操作之一。它用于需要查找元素是否在给定列表中的所有应用程序中。在本章中,我们将讨论以下搜索算法-分而治之深度优先搜索广度优先搜索最佳优先搜索分而治之在分而治之的方法中,问题分为几个小子问题。然后,将子问题递归求解并组合起来,以解决原始问题。分而治之的方法在每个级别涉及以下步骤-划分-原始问题分为子问题。征服-子问题递归解决。合并-将子问题的解决方案合并以获得原始问题的解决方...
📅  最后修改于: 2020-12-13 15:17:09        🧑  作者: Mango
图是一种抽象符号,用于表示对象对之间的连接。图由-顶点-图形中的互连对象称为顶点。顶点也称为节点。边缘-边缘是连接顶点的链接。有两种类型的图-有向图-在有向图中,边具有方向,即边从一个顶点到另一个顶点。无向图-在无向图中,边没有方向。图形着色图形着色是一种将颜色分配给图形的顶点的方法,以使两个相邻的顶点都不具有相同的颜色。一些图形着色问题是-顶点着色-一种为图形的顶点着色的方法,以便没有两个相邻的...
📅  最后修改于: 2020-12-13 15:17:26        🧑  作者: Mango
以下资源包含有关并行算法的其他信息。请使用它们来获得有关此方面的更深入的知识。并行算法的有用链接并行算法Wiki-并行算法的Wikipedia参考。关于并行算法的有用书籍要在此页面上注册您的网站,请发送电子邮件至...
📅  最后修改于: 2020-12-13 15:17:45        🧑  作者: Mango
并行算法可以在许多不同的处理设备上同时执行,然后组合在一起以获得正确的结果。并行算法在快速处理大量数据中非常有用。本教程介绍了并行算法的设计和分析。此外,它还解释了并行算法中遵循的模型,其结构和实现。...