<?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 EG Parallel Processing in SAS Enterprise Guide</title>
    <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/EG-Parallel-Processing/m-p/492143#M31727</link>
    <description>&lt;P&gt;I'm trying to wrap my head around EG's support for parallel processing.&amp;nbsp; I have a large number of long running, independent program&amp;nbsp;entries&amp;nbsp;that could benefit from parallel processing, then combining them in downstream code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There are (at least) two approaches:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1) The project property is serial processing (the default), and I mark specific program entries to run in parallel on the "same" server (even though it runs on a different server instance).&lt;/P&gt;&lt;P&gt;2) The project property is parallel processing, and I mark specific program entries to run in serial.&amp;nbsp; This is how I've configured the current project I'm working on.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(It sure would be nice if I could set this property at the process flow level and have the program entries inherit this setting.&amp;nbsp; Setting this property entry by entry is a real pain).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've also learned the importance of setting links for the program entries, so they honor dependencies (run in serial) even if the program entry is marked to run in parallel.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you've done parallel processing in EG, can you suggest any best practice?&amp;nbsp; Did you find it worked as you expected?&amp;nbsp; Any "gotchas"?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I admit I haven't read the EG documentation cover to cover on this, but if you're aware of any good SGF papers that explain EG's parallel processing please point me in the right direction.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Finally, I've encountered this behavior which I find "unintuitive":&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* Mark your project property to run in parallel by default&lt;/P&gt;&lt;P&gt;* Create this program entry:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data shoes;
   set sashelp.shoes;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;You get your 500+ lines of macro code in the log (MACRO: defineworkfolder, etc), it runs on a separate server instance, and you don't get any local results.&amp;nbsp; This is expected.&amp;nbsp; If I wrote the output dataset to a permanent library, I could do something with it in downstream code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* But now create a 2nd program entry and mark it serial processing (custom, don't tick any checkboxes).&lt;/P&gt;&lt;P&gt;* Run the same code as above.&amp;nbsp; You now have work.shoes in your local session, and it display in the datatable output (if you have default settings).&amp;nbsp; So far so good.&lt;/P&gt;&lt;P&gt;* Now do Filter and Sort, all variables, filter=Region='United States'&lt;/P&gt;&lt;P&gt;* The code runs,&amp;nbsp;the log looks "normal" with no macro code in the log.&amp;nbsp; But there is no local&amp;nbsp;WORK.FILTER_FOR_SHOES dataset, and no datatable output.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So, I have a local table, run a&amp;nbsp;Filter and Sort task on it, from a program entry marked for serial processing, with no parallel processing output lines in the log, but it ran in parallel.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does anyone else consider this a design bug?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm creating EG projects that less experienced end users will be running.&amp;nbsp; They may run partial code from a program entry marked for serial processing, then want to explore the data.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Given the above behavior, I don't think I can ever run with with option #2 above - I think it will freak out my end users.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thoughts?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks...&lt;/P&gt;</description>
    <pubDate>Tue, 04 Sep 2018 01:31:05 GMT</pubDate>
    <dc:creator>ScottBass</dc:creator>
    <dc:date>2018-09-04T01:31:05Z</dc:date>
    <item>
      <title>EG Parallel Processing</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/EG-Parallel-Processing/m-p/492143#M31727</link>
      <description>&lt;P&gt;I'm trying to wrap my head around EG's support for parallel processing.&amp;nbsp; I have a large number of long running, independent program&amp;nbsp;entries&amp;nbsp;that could benefit from parallel processing, then combining them in downstream code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There are (at least) two approaches:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1) The project property is serial processing (the default), and I mark specific program entries to run in parallel on the "same" server (even though it runs on a different server instance).&lt;/P&gt;&lt;P&gt;2) The project property is parallel processing, and I mark specific program entries to run in serial.&amp;nbsp; This is how I've configured the current project I'm working on.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(It sure would be nice if I could set this property at the process flow level and have the program entries inherit this setting.&amp;nbsp; Setting this property entry by entry is a real pain).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've also learned the importance of setting links for the program entries, so they honor dependencies (run in serial) even if the program entry is marked to run in parallel.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you've done parallel processing in EG, can you suggest any best practice?&amp;nbsp; Did you find it worked as you expected?&amp;nbsp; Any "gotchas"?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I admit I haven't read the EG documentation cover to cover on this, but if you're aware of any good SGF papers that explain EG's parallel processing please point me in the right direction.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Finally, I've encountered this behavior which I find "unintuitive":&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* Mark your project property to run in parallel by default&lt;/P&gt;&lt;P&gt;* Create this program entry:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data shoes;
   set sashelp.shoes;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;You get your 500+ lines of macro code in the log (MACRO: defineworkfolder, etc), it runs on a separate server instance, and you don't get any local results.&amp;nbsp; This is expected.&amp;nbsp; If I wrote the output dataset to a permanent library, I could do something with it in downstream code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* But now create a 2nd program entry and mark it serial processing (custom, don't tick any checkboxes).&lt;/P&gt;&lt;P&gt;* Run the same code as above.&amp;nbsp; You now have work.shoes in your local session, and it display in the datatable output (if you have default settings).&amp;nbsp; So far so good.&lt;/P&gt;&lt;P&gt;* Now do Filter and Sort, all variables, filter=Region='United States'&lt;/P&gt;&lt;P&gt;* The code runs,&amp;nbsp;the log looks "normal" with no macro code in the log.&amp;nbsp; But there is no local&amp;nbsp;WORK.FILTER_FOR_SHOES dataset, and no datatable output.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So, I have a local table, run a&amp;nbsp;Filter and Sort task on it, from a program entry marked for serial processing, with no parallel processing output lines in the log, but it ran in parallel.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does anyone else consider this a design bug?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm creating EG projects that less experienced end users will be running.&amp;nbsp; They may run partial code from a program entry marked for serial processing, then want to explore the data.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Given the above behavior, I don't think I can ever run with with option #2 above - I think it will freak out my end users.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thoughts?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks...&lt;/P&gt;</description>
      <pubDate>Tue, 04 Sep 2018 01:31:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/EG-Parallel-Processing/m-p/492143#M31727</guid>
      <dc:creator>ScottBass</dc:creator>
      <dc:date>2018-09-04T01:31:05Z</dc:date>
    </item>
    <item>
      <title>Re: EG Parallel Processing</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/EG-Parallel-Processing/m-p/496275#M31946</link>
      <description>&lt;P&gt;Lots of 'gotcha's to setup:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1. save your globals and reset them in each task (use tools/options/sas programs)&lt;/P&gt;
&lt;P&gt;2. save your libnames and reset them in each task.&lt;/P&gt;
&lt;P&gt;3. tasks don't work.&lt;/P&gt;
&lt;P&gt;4. if you want to use tasks, have a second EG session with parallel turned off.&amp;nbsp; You can then use your libnames from the 1st session and do tasks and such.&amp;nbsp; Good for dev/testing.&lt;/P&gt;</description>
      <pubDate>Mon, 17 Sep 2018 15:44:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/EG-Parallel-Processing/m-p/496275#M31946</guid>
      <dc:creator>tomrvincent</dc:creator>
      <dc:date>2018-09-17T15:44:56Z</dc:date>
    </item>
  </channel>
</rss>

