Parallel processing 并行运行Sas宏

Parallel processing 并行运行Sas宏,parallel-processing,sas,logistic-regression,sas-macro,Parallel Processing,Sas,Logistic Regression,Sas Macro,我有一个类似的宏,目标是计算信息价值: %macro iv_calc(x,event,varlist); data main_table; set x(keep=event varlist.); run; /****Steps to compute IV ****/ %mend; X是数据集的名称,event是因变量名称,varlist以宏变量格式显示所有自变量的名称。 varlist中的变量数量未知,可能从100到2000+不等。因此,宏需要很长时间才能运行。我是新手,所以我的要求是了解是

我有一个类似的宏,目标是计算信息价值:

%macro iv_calc(x,event,varlist);
data main_table;
set x(keep=event varlist.);
run;

/****Steps to compute IV ****/
%mend;
X是数据集的名称,event是因变量名称,varlist以宏变量格式显示所有自变量的名称。
varlist中的变量数量未知,可能从100到2000+不等。因此,宏需要很长时间才能运行。我是新手,所以我的要求是了解是否有办法将varlist拆分为2,并并行运行同一个宏,因为需要使用事件来计算信息值,从而减少运行时。我的第一个想法是求助于shell脚本,但是变量的数量是未知的,这就是问题所在。任何微小的帮助都将不胜感激。非常感谢。

在SAS中管理并行执行非常不方便,而且需要/signon/rsubmit

例如,shell中的并行执行是:

echo "param1 param2 param3" | tr ' ' '\n' | xargs -i{} -P 2 ./run-sas.sh {}

-p2指定并行进程的数量。我在中介绍了将参数传递给子SAS会话。

那么shell脚本的问题在哪里呢?给出一个参数用于前半部分,另一个参数用于后半部分。在sas中拆分列表或将奇偶分开。请提供您尝试并行化的代码的列表。您当前的示例太有限,任何人都无法提供很多有用的建议。更清楚的是,宏生成的源代码很可能需要很长时间。。。有点像花4个小时计划一次8天的旅行,并说计划需要很长时间。考虑到您提供的代码,我们不知道您如何使用该宏变量,也无法提供加快速度的方法。可能有,也可能没有,你需要提供更多的细节。