什么是并行计算?
随着计算机的不断发展,我们处理的数据不断变多,需要更大得到处理能力、我们希望计算机有着更大更强壮的计算能力,由于cpu的运行能力有限,我们便想到了将多个cpu进行串联计算问题,这也就是我们要讲的并行计算
并行计算的思想:
用多个处理器来协同求解同一问题,将被求解的问题分成若干个成分,各部分均由一个独立的吃立即来进行并行计算
并行计算的含义:
并行计算是相对于串行计算来说的
并行计算是指同时使用多种计算资源解决问题的过程
并行计算是提高计算机系统计算速度和处理能力的有效手段
并行计算的研究内容:
并行,并发,分布式:
并发:其实是多个进程在同一段时间内执行这三个均在系统中同时存在多个执行
并行:多个线程在同一时刻,一定要是时刻,才叫并行内执行
分布式:多个进程在多个网络的处理器上执行
为什么要进行并行计算?
气象建模,蛋白质折叠,药物研发,能源研究
数据分析
什么是单核?
在计算机科学中,“单核”指的是单核处理器,即具有单个处理核心的中央处理单元(CPU)。在多核处理器普及之前,大多数计算机都使用单核CPU。
什么是多核?
多核处理器:
多核处理器包含两个或更多个独立的处理核心。
每个核心都可以独立地执行程序指令和处理数据,这意味着多核处理器可以同时处理多个任务或线程。
多核处理器在执行多任务、多线程应用程序时具有显著优势,因为它们可以将工作负载分配给不同的核心,从而提高整体性能和效率。
多核处理器更适合现代的多用户、多任务操作系统,以及需要大量计算资源的应用程序,如视频编辑、3D渲染、科学模拟和大数据分析等。
如何进行并行计算?
这就牵扯到了算法
举例:
下面是一个简单的Python代码示例,展示了如何在单个Python进程中使用多线程来实现并行计算。这个例子中,我们创建了一个函数`calculate_square`,它计算一个数的平方,然后我们创建了多个线程来同时计算多个数的平方。
`
import threading# 定义一个函数,用于计算数的平方
def calculate_square(number):return number * number# 创建一个列表,包含一些需要计算平方的数字
numbers = [1, 2, 3, 4, 5]# 创建一个线程列表,用于存储我们的线程
threads = []# 创建和启动线程
for number in numbers:thread = threading.Thread(target=calculate_square, args=(number,))threads.append(thread)thread.start()# 等待所有线程完成
for thread in threads:thread.join()# 输出结果
results = []
for thread in threads:result = thread.get_result() # 假设Thread类有一个get_result方法来获取结果results.append(result)print(results)