linux多核操作命令,利用多核CPU加速你的Linux命令
你是否曾经有过要计算一个非常大的数据(几百GB)的需求?或在里面搜索,或其它操作——一些无法并行的操作。数据专家们,我是在对你们说。你可能有一个4核或更多核的CPU,但我们合适的工具,例如 grep, bzip2, wc, awk, sed等等,都是单线程的,只能使用一个CPU内核。
借用卡通人物Cartman的话,“如何我能使用这些内核”?
要想让Linux命令使用所有的CPU内核,我们需要用到命令,它让我们所有的CPU内核在单机内做神奇的map-reduce操作,当然,这还要借助很少用到的–pipes参数(也叫做–spreadstdin)。这样,你的负载就会平均分配到各CPU上,真的。
BZIP2
bzip2是比gzip更好的压缩工具,但它很慢!别折腾了,我们有办法解决这问题。
以前的做法:
cat bigfile.bin | bzip2 --best > compressedfile.bz2
现在这样:
cat bigfile.bin | parallel --pipe --recend '' -k bzip2 --best > compressedfile.bz2
尤其是针对bzip2,GNU parallel在多核CPU上是超级的快。你一不留神,它就执行完成了。
GREP
如果你有一个非常大的文本文件,以前你可能会这样:
grep pattern bigfile.txt
现在你可以这样:
cat bigfile.txt | parallel --pipe grep 'pattern'
或者这样:
cat bigfile.txt | parallel --block 10M --pipe grep 'pattern'
这第二种用法使用了–block 10M参数,这是说每个内核处理1千万行——你可以用这个参数来调整每个CUP内核处理多少行数据。
AWK
下面是一个用awk命令计算一个非常大的数据文件的例子。
常规用法:
cat rands20M.txt | awk '{s+=$1} END {print s}'
现在这样:
cat rands20M.txt | parallel --pipe awk \'{s+=\$1} END {print s}\' | awk '{s+=$1} END {print s}'
这个有点复杂:parallel命令中的–pipe参数将cat输出分成多个块分派给awk调用,形成了很多子计算操作。这些子计算经过第二个管道进入了同一个awk命令,从而输出最终结果。第一个awk有三个反斜杠,这是GNU parallel调用awk的需要。
WC
想要最快的速度计算一个文件的行数吗?
传统做法:
wc -l bigfile.txt
现在你应该这样:
cat bigfile.txt | parallel --pipe wc -l | awk '{s+=$1} END {print s}'
非常的巧妙,先使用parallel命令‘mapping’出大量的wc -l调用,形成子计算,最后通过管道发送给awk进行汇总。
SED
想在一个巨大的文件里使用sed命令做大量的替换操作吗?
常规做法:
sed s^old^new^g bigfile.txt
现在你可以:
cat bigfile.txt | parallel --pipe sed s^old^new^g
…然后你可以使用管道把输出存储到指定的文件里。
linux多核操作命令,利用多核CPU加速你的Linux命令相关推荐
- mysql如何使用多核cpu_利用多核 CPU 实现并行计算
利用多核 CPU 实现并行计算 由 学院君 创建于1年前, 最后更新于 3个月前 版本号 #2 5814 views 2 likes 1 collects 开始之前,我们先澄清两个概念,「多核」指的是 ...
- 如何利用计算机多核,如何利用多核电脑实现Matlab的并行运算
2017-05-28 回答 matlab并行运算 目前,新购置的电脑大部分都是多核的了,使用matlab进行大量计算时如何有效利用多核呢?matlab目前版本已经比较好的支持多核并行运算了.是用的ma ...
- Linux | Centos下几种CPU查看使用率的常用命令
文章目录 一.top 1.1 常用参数 二.free 三.vmstat 3.1 常用参数 3.2 获取信息 四.mpstat 4.1 安装 4.2 获取信息 一.top top命令是Linux下常用的 ...
- linux查看设备在哪个cpu上,如何在linux中查看cpu信息、机器硬件型号
原标题:如何在linux中查看cpu信息.机器硬件型号 # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 8 Intel(R) Xeon( ...
- Linux C语言 利用url下载文件(实现wget命令)
1.思路分析,以下载下面的url为例 http://www.cztouch.com/upfiles/soft/testpdf.pdf 从url中获取文件名testpdf.pdf,以该名称创建文件 从u ...
- linux基本命令du,Linux常用操作命令汇总
你还在为不知道Linux常用操作命令汇总而不知所措么?下面来是学习啦小编为大家收集的Linux常用操作命令汇总,欢迎大家阅读: Linux常用操作命令汇总 1.ls 命令 ls以默认方式显示当前目录文 ...
- 如何利用多核CPU来加速你的Linux命令
如何利用多核CPU来加速你的Linux命令 原文出处: rankfocus 译文出处: 外刊IT评论 你是否曾经有过要计算一个非常大的数据(几百GB)的需求?或在里面搜索,或其它操作--一些无法并 ...
- python如何指定使用的cpu核_Python如何利用多核处理器
python多线程不能利用多核cpu,但有时候多线程确实比单线程快. python 为什么不能利用多核 CPU GIL 其实是因为在 python中有一个 GIL( Global Interpret ...
- 如何利用多核CPU提高虚拟现实性能?
虚拟现实引领新时代令人惊喜的新体验,但也带来了各种新的挑战.其中之一就是虚拟现实应用"耗能"问题. 虚拟现实挑战了图形和仿真技术,以至于创造优秀虚拟现实体验的硬件需求成为日前热点. ...
最新文章
- CF982 C	Cut 'em all!【树/DFS/思维】
- 什么时候可以全面升级鸿蒙系统,华为已做好全面升级准备,鸿蒙系统将替换底层安卓系统...
- 图解Linux的Socket
- 让Windows XP系统快上几倍的三个绝招
- js获取浏览器滚动条距离顶端的距离
- win7变成xp风格了怎么改回_让电脑提速的几种方法(老电脑太卡怎么提速)
- 可以记录阅读进度的 pdf 电脑阅读器
- ubuntu 14.04中安装Jenkins
- 电子邮件地址中服务器怎么看,你如何检查电子邮件服务器(gmail)中的某个地址,并基于该地址运行一些东西?...
- 华为手机备忘录的字体怎么调大?
- 推荐好用的Linux远程连接工具
- 使用Dosbox运行程序
- 计算机四级网络工程师(备考过程,避开误区,高效备考!)
- D盘根目录出现msdia80.dll
- python之signal操作
- 商务签证的准备(1)
- JAVA经典垃圾收集器与内存分配策略
- Web开发者的福利 30段超实用CSS代码笔记
- C语言 1~100之间3的倍数
- OpenBmc开发14:gpio管理