Sas*_*Sas 5 process parallelism
并行执行有什么限制吗?如果是,如何找出最大限制?
我正在创建一个脚本,它创建一串由 '&' 连接的脚本,并使用 eval 将它们一起执行。像这样的东西:
scriptBuilder="ksh -x script1.sh & ksh -x script2.sh & ksh -x script3.sh";
eval $scriptBuilder;
Run Code Online (Sandbox Code Playgroud)
只想确定服务器上并行执行的最大限制是多少。
该命令ulimit -u显示您可以启动的最大进程数。但是,实际上不要在后台启动那么多进程:您的机器会花时间在进程之间切换,而无法完成实际工作。
对于 CPU 密集型任务,运行与您机器上的内核数量一样多的任务,或多一个。这是如果有足够的 RAM 来容纳所有这些进程及其文件缓存:如果并行进程竞争 I/O 带宽以不断重新加载它们的数据,它们的运行速度将比顺序运行它们的速度慢。您可以在/proc/cpuinfo.
每个处理器运行一项任务的简单方法是使用GNU 并行。
如果任务受 I/O 限制并使用相同的外围设备(例如,它们访问同一磁盘上的文件),通常最好按顺序运行它们。