多CPU,单线程,加速(一)

37 篇文章 0 订阅
34 篇文章 0 订阅

这里只是一些探讨,说得有理的地方就鼓励一下

讲得不对的,请补充

大家共同探讨这些问题;

多CPU实现单线程的加速,

这里说个简单的例子,珠算

珠算或许大家都知道,一盘都是一只手来打算盘, 

但是你应该知道双手打算盘,甚至是8个人同时可以打的算盘

每一只手可以说是一个cpu,那么多只手,就可以说是多只CPU

但是毕竟算盘的时候是由人来控制步骤,不过其中的很多算法还是值得学习的

先说到这里,给一个开头,下次再继续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pandas是一个非常强大的数据处理工具,但是由于GIL(全局解释器锁)的存在,它在单线程下的处理速度有些缓慢。为了加速Pandas的处理速度,我们可以使用多线程技术。 在Pandas中,我们可以使用`multiprocessing`库来实现多线程。具体操作如下: 1. 首先,我们需要把数据分成若干个部分,每个线程处理其中的一部分数据。 2. 接着,我们可以使用`Pool`类中的`map()`函数来并行处理这些部分数据。 3. 最后,我们需要使用`concat()`函数将所有处理结果合并起来。 下面是一个简单的示例代码,演示如何使用多线程加速Pandas: ```python import pandas as pd from multiprocessing import Pool, cpu_count def process_data(data): # 对数据进行处理 return processed_data if __name__ == '__main__': # 读取数据 data = pd.read_csv('data.csv') # 将数据分成若干个部分 num_partitions = cpu_count() # 根据CPU核心数确定分割数 partitions = np.array_split(data, num_partitions) # 创建进程池 pool = Pool(num_partitions) # 并行处理数据 processed_partitions = pool.map(process_data, partitions) # 合并处理结果 processed_data = pd.concat(processed_partitions) # 关闭进程池 pool.close() pool.join() # 输出处理结果 print(processed_data) ``` 需要注意的是,在使用多线程加速Pandas时,我们需要避免使用一些会阻塞线程的函数,例如`apply()`、`iterrows()`、`itertuples()`等,因为这些函数会阻塞线程并导致性能下降。相反,我们应该使用一些支持向量化操作的函数,例如`map()`、`applymap()`、`values`属性等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值