<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Parallel Job SAS DIS - Old Version in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/241362#M6274</link>
    <description>&lt;P&gt;Hi LinusH,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your answer.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I didn't understood your response, specially the part about the permanent (non persistant) output from splitter.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can't place my jobs directly from the splitter without having the loop object.&lt;/P&gt;&lt;P&gt;And I don't have scheduler for the paralleliztion planning.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regarding the grid question:&lt;/P&gt;&lt;P&gt;1) If you're talking about the server, We have a dedicated server to run SAS jobs, which is a pretty good machine, with some processors (don't remember how many though)&lt;/P&gt;&lt;P&gt;2) If you're talking about Grid in SAS, I don't think we have that configured or even if we have the license for that. Ancient SAS and first time using SAS DIS.&lt;/P&gt;</description>
    <pubDate>Thu, 31 Dec 2015 10:47:44 GMT</pubDate>
    <dc:creator>aiaimanel</dc:creator>
    <dc:date>2015-12-31T10:47:44Z</dc:date>
    <item>
      <title>Parallel Job SAS DIS - Old Version</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/241358#M6272</link>
      <description>&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm new to this forum and I'm new in SAS DIS.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We have a pretty complex Workflow and we would like to parallelize some jobs.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm using a old version of SAS DIS (Version 3.4 , yup, don't be scared.. its a pain to do jobs here when you're used to other ETL Tools) and I do not know anything about parellelizing jobs on SAS DIS.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've done some read about the Enable Parallel option on the Loops object but I really don't know how can I do this or if this will work.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm adding an attachment which shows one of the jobs I would like to parallelize.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can anyone help me?&lt;/P&gt;&lt;BR /&gt;&lt;IMG src="https://communities.sas.com/t5/image/serverpage/image-id/12165iDCF4E74622B7D260/image-size/large?v=1.0&amp;amp;px=600" border="0" alt="SAS_DIS_Job.PNG" title="SAS_DIS_Job.PNG" /&gt;</description>
      <pubDate>Thu, 31 Dec 2015 10:07:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/241358#M6272</guid>
      <dc:creator>aiaimanel</dc:creator>
      <dc:date>2015-12-31T10:07:51Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Job SAS DIS - Old Version</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/241361#M6273</link>
      <description>You're right, it an ancient version and I can't really recall the parallelization capabilities. &lt;BR /&gt;It seems you are calling different jobs in each "leg", so I would simply suggest that you create permanent (non persistant) output from splitter. And then use your scheduler for the parallelization planning.&lt;BR /&gt;Unless you are in a grid...?</description>
      <pubDate>Thu, 31 Dec 2015 10:35:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/241361#M6273</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2015-12-31T10:35:37Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Job SAS DIS - Old Version</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/241362#M6274</link>
      <description>&lt;P&gt;Hi LinusH,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your answer.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I didn't understood your response, specially the part about the permanent (non persistant) output from splitter.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can't place my jobs directly from the splitter without having the loop object.&lt;/P&gt;&lt;P&gt;And I don't have scheduler for the paralleliztion planning.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regarding the grid question:&lt;/P&gt;&lt;P&gt;1) If you're talking about the server, We have a dedicated server to run SAS jobs, which is a pretty good machine, with some processors (don't remember how many though)&lt;/P&gt;&lt;P&gt;2) If you're talking about Grid in SAS, I don't think we have that configured or even if we have the license for that. Ancient SAS and first time using SAS DIS.&lt;/P&gt;</description>
      <pubDate>Thu, 31 Dec 2015 10:47:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/241362#M6274</guid>
      <dc:creator>aiaimanel</dc:creator>
      <dc:date>2015-12-31T10:47:44Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Job SAS DIS - Old Version</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/241390#M6275</link>
      <description>&lt;P&gt;What I meant was to store the splitter result in a&amp;nbsp;permanent library. Persistent means that you keep some&amp;nbsp;kind of history.&lt;/P&gt;
&lt;P&gt;Are you using the splitter outputs as parameter data for the loop?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It seems that you are on a SMP SAS box, which means that MP Connect will be used for paralleliziation.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Scheduling: you do run the jobs in batch, no?&lt;/P&gt;
&lt;P&gt;In the Scheduling plugin in&amp;nbsp;Management Console, uou can define flows where jobs can run in parallel - even for cron and Windows Task.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But, by looking in the documentation, I see that parallelization is possible within DI Studio - see chapter 18. Whether this is applicable to your situation, I can't tell.&lt;/P&gt;</description>
      <pubDate>Thu, 31 Dec 2015 15:48:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/241390#M6275</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2015-12-31T15:48:51Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Job SAS DIS - Old Version</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/241484#M6276</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/66922"&gt;@aiaimanel﻿&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;Firstly and what you already know: SAS 9.1.3 / DIS 3.4 is seriously outdated and your company needs to upgrade. As to my knowledge there is even no more a direct migration path from DIS 3.4 to the most current version (=you need first to migrate to an earlier version and only then you can migrate to the most current version). Not sure why any company still would invest into development using&amp;nbsp;DIS3.4 (unless it's some bridging BAU task).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As for your real question:&lt;/P&gt;
&lt;P&gt;The flow you've posted doesn't look right to me. IF DIS 3.4 already provides the "run in parallel" option then the code generated will spawn a new session for the inner job using MP Connect (rsubmit). You will need SAS/Connect licenced on your server for this to work.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From the current documentation:&amp;nbsp;&lt;A href="http://support.sas.com/documentation/cdl/en/etlug/67323/HTML/default/viewer.htm#n0t84jtm1a5wofn1e4qp2t73pd5l.htm" target="_blank"&gt;http://support.sas.com/documentation/cdl/en/etlug/67323/HTML/default/viewer.htm#n0t84jtm1a5wofn1e4qp2t73pd5l.htm&amp;nbsp;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="https://communities.sas.com/t5/image/serverpage/image-id/1342i89953670AF6FA61F/image-size/original?v=mpbl-1&amp;amp;px=-1" border="0" alt="Capture.PNG" title="Capture.PNG" /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For your flow:&lt;/P&gt;
&lt;P&gt;1. Create an inner job which takes parameters&lt;/P&gt;
&lt;P&gt;2. Create a control table ("checklib" in above picture) which contains the parameter values&lt;/P&gt;
&lt;P&gt;3. In the loop transformation map the columns from the control table "checklib" to the parameters of your inner job&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In your example:&lt;/P&gt;
&lt;P&gt;What you would pass to the inner job is the selection criteria subsetting your source data ("D_CTB_CARREGAMENTO"). This is then available to your inner job as SAS macro variable. Your inner job could then be defined as follows:&lt;/P&gt;
&lt;P&gt;....&lt;/P&gt;
&lt;P&gt;where &amp;lt;variable&amp;gt;=&amp;amp;parameter_value&lt;/P&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your flow would only have the following objects:&lt;/P&gt;
&lt;P&gt;- Source table&lt;/P&gt;
&lt;P&gt;- Control table (and eventually a user written node creating &amp;amp; populating the control table)&lt;/P&gt;
&lt;P&gt;- a single loop transformation&lt;/P&gt;
&lt;P&gt;- a single inner job (parameterized)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Having written all of the above: I don't like to use the loop transformation for parallel runs of jobs. Actually: I don't like the loop transformation at all and I only use it in cases where I don't know in advance how many calls of the inner job I need (=data driven with a control table created dynamically based on some changing upstream data).&lt;/P&gt;
&lt;P&gt;Especially when setting the parallel option you'll end up with child processes. What do you do if one of the child processes falls over? How do you re-run your job? Can you re-run everything?&lt;/P&gt;
&lt;P&gt;When using a scheduler only the outer job can get scheduled and will be monitored. So if something falls over you just know that something didn't work. You then need to find the log of the child process which didn't work for further investigation.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The approach I&amp;nbsp;would be taking for your example:&lt;/P&gt;
&lt;P&gt;1. Create a custom transformation which takes the data selection criteria as a parameter (a prompt)&lt;/P&gt;
&lt;P&gt;2. Write separate jobs for each selection (source table, custom transformation with selection criteria populated, target table)&lt;/P&gt;
&lt;P&gt;3. Use a scheduler like LSF to run all these jobs in parallel.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This way if something falls over it's directly monitored and reported on by the scheduler, you find the log directly, you can fix and re-run exactly the affected job without the need to touch anything else.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 01 Jan 2016 23:29:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/241484#M6276</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2016-01-01T23:29:54Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Job SAS DIS - Old Version</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/242070#M6278</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/12447"&gt;@Patrick﻿&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;SPAN&gt;&lt;BR /&gt;&amp;nbsp;First of all, let me thank you for your amazing reply. I will try to answer all the points&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;referred&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;in your reply as best as I possibly can.&lt;BR /&gt;&lt;BR /&gt;It's an ancient version and since I'm used to work with more modern versions of&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;ETL&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;tools, like PowerCenter,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;CloverETL&lt;/SPAN&gt;&lt;SPAN&gt;, among others, it really takes me a step back. This version does not have a&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;CTRL&lt;/SPAN&gt;&lt;SPAN&gt;+Z option (to begin with) !!!&lt;BR /&gt;&lt;BR /&gt;The job I&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;attached&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;is a regular job with this version. It has a&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;splitter&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;which has a column that serves as a parameter for all the Loops. I cannot nest anymore jobs within a loop, only one.&lt;BR /&gt;It does have a option for&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;parallelization&lt;/SPAN&gt;&lt;SPAN&gt;, which is referenced on the manual, which is "Execute iterations in Parallel" and from the testings I've been doing, it is increasing (a lot) the performance on my most heavy/longer jobs, so thanks a lot for that!&lt;BR /&gt;&lt;BR /&gt;My question is if this is a good option to keep on mind and to use for a better performance and for the&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;ETL&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;to take less time to execute. The server is a pretty good machine, with a lot of cores (32 i think), so running one job per processor, as indicated in the manual, is not a bad idea.&lt;BR /&gt;&lt;BR /&gt;Another question I have is:&lt;BR /&gt;- Is it better to use the Execute iterations in Parallel only, or to use the "Enable parallel processing macros" in the Job Property (within the loop) ? Or is it better to use&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;both ?&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Regarding the scheduler, we only have&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;Control-M&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;which runs the SH, which call&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;SAS&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;Jobs in a specific order.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Best regards and thanks!!&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 06 Jan 2016 16:31:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/242070#M6278</guid>
      <dc:creator>aiaimanel</dc:creator>
      <dc:date>2016-01-06T16:31:01Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Job SAS DIS - Old Version</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/242094#M6279</link>
      <description>Imho don't make things complicated unless necessary. So, what we are looking at is a job flow diagram, and I'm don't favour this kind of use of DI Studio. Dependencies between jobs is better defined elsewhere. &lt;BR /&gt;So I would split this job inte separata for each loop. Then call these jobs directly from CTRL-M, or in the schedule manger and then have CTRL-M call the shell script. This means that you can parallelized these jobs manually.&lt;BR /&gt;It seems that you should be able to do the looping in parallel as well if you like. Why don't you try out the different options at hand and evaluate the results?&lt;BR /&gt;</description>
      <pubDate>Wed, 06 Jan 2016 18:23:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/242094#M6279</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2016-01-06T18:23:32Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Job SAS DIS - Old Version</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/242227#M6286</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13674"&gt;@LinusH﻿&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Sorry for skipping your other response, got lost because of the other response.&lt;BR /&gt;&lt;BR /&gt;It is not that easy to try that solution. We don't have&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;Control-M&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;in&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;DEV&lt;/SPAN&gt;&lt;SPAN&gt;, and the&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;ETL&lt;/SPAN&gt; &lt;SPAN class="googie_link"&gt;Process&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;is quite complex, and the dependencies are made in the SH and&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;Control-M&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;BR /&gt;&lt;BR /&gt;It is true that I could separate the loops into different jobs/shell scripts and&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;parallelize&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;that on&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;Control-M&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;but since it is a harder and more&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;time-consuming&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;solution, I would like to make that one as a last resource.&lt;BR /&gt;&lt;BR /&gt;Regarding the question I've asked on my previous response, can you help me with&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="googie_link"&gt;that?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="googie_link"&gt;Thank you once again.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="googie_link"&gt;Best regards!&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 07 Jan 2016 17:14:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/242227#M6286</guid>
      <dc:creator>aiaimanel</dc:creator>
      <dc:date>2016-01-07T17:14:45Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Job SAS DIS - Old Version</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/242230#M6287</link>
      <description>I think that you should have the necessary means to carry on at this point.&lt;BR /&gt;I'm happy to help as a part of a service agreement.</description>
      <pubDate>Thu, 07 Jan 2016 17:20:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Parallel-Job-SAS-DIS-Old-Version/m-p/242230#M6287</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2016-01-07T17:20:34Z</dc:date>
    </item>
  </channel>
</rss>

