Параллельная обработка в SAS

о мудрые пользователи StackOverflow. У меня вопрос по поводу параллельной обработки в SAS 9.4:

Я знаю, что SAS обычно выполняет процедуры последовательно или линейно, однако я также знаю, что SAS также может выполнять процедуры параллельно. У меня вопрос: как это настроить? Я проверил несколько блогов, и у меня не было никакой степени успеха. Общий вид моего кода таков:

MACRO VARIABLES;
%syslput _all_;
RSubmit;
Data step to slightly modify variables;
Run;
EndRSubmit;

PROC SQL 1;
Connect to server statement;
SQL code;
QUIT;
...
PROC SQL n;
Connect to server statement;
SQL code;
QUIT;

Есть 8 фрагментов кода PROC SQL, которые в идеале хотелось бы выполнять параллельно, а не линейно. Любая помощь или совет будут оценены.

Спасибо!


person A_Pirates_Favorite_Letter    schedule 07.12.2018    source источник


Ответы (2)


Не совсем многопоточность, но если вы можете использовать RSUBMIT, есть вариант, когда код отправляется, а затем вы снова получаете контроль над своим компьютером. Вам все еще нужно дождаться вывода, но он не вешает трубку и не задерживает ваш компьютер.

RSUBMIT CONNECTWAIT=NO;

Не уверен, что вам нужна косая черта после RSUBMIT, но в документации ничего не указано.

https://documentation.sas.com/?docsetId=connref&docsetTarget=p1eyablk3vvdlkn1h5euyczvt585.htm&docsetVersion=9.4&locale=en

person Reeza    schedule 07.12.2018
comment
Вам не нужен / :) - person user667489; 08.12.2018

Если ваши фрагменты кода независимы, вы можете отправлять их и запускать параллельно в отдельных сеансах SAS. Несмотря на то, что эти сеансы называются удаленными, вы можете запускать их даже на одной машине. Вот пример одного удаленного сеанса:

/* Prosess 1 */
signon task1;
rsubmit task1 wait=no;

   PROC SQL n;
   Connect to server statement;
   SQL code;
   QUIT;

endrsubmit;

У вас может быть несколько таких сеансов RSUBMIT/ENDRSUBMIT.

В конце вам нужно синхронизировать свои результаты, используя

waitfor _all_;
signoff _all_;

Вы можете найти подробное объяснение этого метода в Запуск программ SAS параллельно с использованием SAS/CONNECT® в блоге.

person Leonid Batkhan    schedule 17.01.2021