多核编程
文章平均质量分 77
樱满无门
这个作者很懒,什么都没留下…
展开
-
POSIX下简单线程池的实现
POSIX下简单线程池的实现什么是线程池?为什么要有线程池?进程是资源分配的基本单位线程是能独立运行的基本单位一个进程内的线程共享资源因此,线程的创建开销小于进程——不需要执行进程复制、分配页表等操作线程的同步开销小于进程——不需要进程间通信,因为线程之间能共享资源在客户机-服务器模型中,每当添加一个新的连接时,就需要创建一个新的线程进行响应。当连接结束后,需要释放当前的线程。线程的开销虽然小,但是并不是意味着没有开销并且,更加严重的问题是,如果同时有大量连接产生,那么,分配的线程的数量很原创 2021-05-07 16:41:32 · 233 阅读 · 2 评论 -
多核编程实践——识别并行机会(二)
识别并行机会(二)虚拟化通过在最高层次上实现并行机制,提供了利用多核或者多处理器系统的方式对于软件开发人员来说,如何利用多个核心增加单个应用程序的吞吐量或者速度是一个问题。采用并行机制提高单个任务的性能并行可以完成更多的工作,这里的工作可能是独立的任务,更多的交流是必须的,访问资源也是一个问题并行影响算法的选择有的算法适合并行,其他则不适合有时候,我们虽然增加了线程数,但是并不能保证性能提升。例如快排算法,使用多个线程对多个部分进行排序,虽然对每个部分同时进行排序看起来能提升其时间,但是,将其原创 2021-03-22 17:24:38 · 139 阅读 · 0 评论 -
多核编程应用——识别并行机会(一)
识别并行机会(一)使用多进程提高系统工作效率单核系统在多个活动应用程序间切换,给人同时执行多个应用程序的错觉多核系统的优点在于能真正运行多个程序:即使只有一个多核处理器,系统的性能年也会由于可同时执行多个线程而提升,并且无需对现有的程序进行更改多用户系统多用户系统更为常见、强大、昂贵。这些用户可能是人,也可能是其他应用程序。例如*unix系统,支持在多个用户间共享计算资源,每个用户得到计算资源的一部分通过运行多个程序、同一个程序的多个副本、多个用户同时使用来充分利用多栈系统。多用原创 2021-03-16 07:54:54 · 152 阅读 · 0 评论 -
多核编程应用——高性能编码
主要内容:如何在编写程序的时候谨记性能高性能编码将性能视为应用程序的前期规范性能的定义使用两种指标:单位时间完成项数每秒完成项数算法复杂度算法复杂度不是执行时间的模型,而是执行时间随着输入量变化而变化的模型算法复杂度表示当处理的元素数量增加时,代码段的预期性能,具有最大算法复杂度的代码将决定应用程序的运行时间在进行测试的时候,有时候会出现当只运行100个元素时,低算法复杂度的代码运行时间反而更久的现象。因此,在决定哪一段代码需要优化的时候,选择小工作负荷会产生误导。谨慎使用原创 2021-03-14 22:16:25 · 205 阅读 · 2 评论 -
多核编程应用——硬件、进程、线程(二)
硬件、进程、线程(二)使用缓存处理器从内存中获取一组字节时,数据连同其相邻字节作为一条缓存线提取。缓存线的典型大小为64字节。缓存线总是对齐的。从内存提取的数据存于缓存。通常有指令缓存和数据缓存。缓存的两个明显特性:缓存线大小、缓存大小。其他特性:关联性直接映射缓存:简单缓存中,内存的每条缓存线都会映射到缓存的一个位置。即若缓存大小为4KB,内存中每隔4KB的缓存线都会映射到缓存的同一个位置使用增加缓存关联性的方法解决:让内存中的一条缓存线可以映射到缓存的读个位置。完全关联缓存:内原创 2021-03-12 14:04:40 · 150 阅读 · 0 评论