<?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: Not enough resources: Simulation and the calculation of pair-wise distances in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191263#M36100</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;EDIT: Your code works after I changed the &lt;EM&gt;%let sasbat&lt;/EM&gt; statement to &lt;STRONG&gt;%let sasbat="C:\Program Files\SASHome\SASFoundation\9.3\sas.exe";&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;=== [ Work history ] ===&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you very much again for the update, Patrick. Same as before, the code did not generate any output. I DID NOT run the second section of your SAS code that combines the &lt;EM&gt;kout&lt;/EM&gt; datasets. I include the log message and how the working folder and the &lt;EM&gt;test&lt;/EM&gt; library look like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I changed the working folder from &lt;EM&gt;c:\test&lt;/EM&gt; to &lt;STRONG&gt;&lt;EM&gt;d:\patrick&lt;/EM&gt;&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;I set the number of task iteration as two: &lt;EM&gt;&lt;STRONG&gt;%let rep=2;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;========================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: The file PRG is:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Filename=d:\patrick\prog1.sas,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RECFM=V,LRECL=256,File Size (bytes)=0,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Last Modified=02Dec2014:15:03:10,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create Time=02Dec2014:14:42:40&lt;/P&gt;&lt;P&gt;NOTE: 37 records were written to the file PRG.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The minimum record length was 0.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The maximum record length was 100.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 277.93k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS Memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13252.00k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Timestamp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12/02/2014 03:03:10 PM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: Task "task0" produced no LOG/Output.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.01 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.01 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 232.34k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS Memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13252.00k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Timestamp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12/02/2014 03:03:11 PM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: The file PRG is:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Filename=d:\patrick\prog2.sas,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RECFM=V,LRECL=256,File Size (bytes)=0,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Last Modified=02Dec2014:15:03:11,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create Time=02Dec2014:14:42:41&lt;/P&gt;&lt;P&gt;NOTE: 37 records were written to the file PRG.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The minimum record length was 0.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The maximum record length was 100.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 231.50k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS Memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13252.00k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Timestamp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12/02/2014 03:03:11 PM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: Task "task1" produced no LOG/Output.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 232.34k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS Memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13252.00k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Timestamp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12/02/2014 03:03:12 PM&lt;/P&gt;&lt;P&gt;=======================================&lt;/P&gt;&lt;P&gt;&lt;IMG __jive_id="8132" alt="pic_library.JPG" class="jive-image" src="https://communities.sas.com/legacyfs/online/8132_pic_library.JPG" /&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG __jive_id="8133" alt="pic_patrick_folder.JPG" class="jive-image-thumbnail jive-image" src="https://communities.sas.com/legacyfs/online/8133_pic_patrick_folder.JPG" width="450" /&gt;&lt;/P&gt;&lt;P&gt;Something goes wrong in the batch mode processing? The main LOG says "NOTE: Task "task0" produced no LOG/Output." The batch processing is completely a new area to me, but I will study those material. I am googling cases that SAS batch processing produces no outputs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you very much again for all of your responses.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;EDIT:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;I am reading this blog: &lt;A href="http://www.sas-programming.com/2009/03/leverage-multi-core-with-single-core.html" title="http://www.sas-programming.com/2009/03/leverage-multi-core-with-single-core.html"&gt;SAS Programming for Data Mining: Parallel Processing with Single-Thread SAS license&lt;/A&gt;, which seems to be closely relevant to my problem. It seems that &lt;EM&gt;systask command&lt;/EM&gt; operation is the product of SAS/CONNECT? My SAS license DOES contain that product.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;EDIT:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;From your comment in this thread: &lt;A _jive_internal="true" href="https://communities.sas.com/message/220782"&gt;https://communities.sas.com/message/220782&lt;/A&gt;, I changed your &lt;EM&gt;%let sasbat&lt;/EM&gt; statement to &lt;STRONG&gt;%let sasbat="C:\Program Files\SASHome\SASFoundation\9.3\sas.exe";&lt;/STRONG&gt;. Now, it worked. I have the kout datasets in the test library, and in the d:\patrick.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 02 Dec 2014 20:06:01 GMT</pubDate>
    <dc:creator>tesu</dc:creator>
    <dc:date>2014-12-02T20:06:01Z</dc:date>
    <item>
      <title>Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191251#M36088</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This question is a follow-up from Patrick's answer on the pair-wise calculation: &lt;A _jive_internal="true" href="https://communities.sas.com/message/239952"&gt;https://communities.sas.com/message/239952&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My current working SAS code is the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let datetime_start = %sysfunc(TIME()) ;&lt;BR /&gt;%put START TIME: %sysfunc(datetime(),datetime14.);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data original (drop = i);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; do i = 1 to 1000000;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lon = -78 + ranuni(i);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; lat = 37 + ranuni(i+1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;run;&lt;BR /&gt;proc surveyselect data = original method = SRS rep = 1000&lt;BR /&gt;&amp;nbsp; sampsize = 5500 out = sampledata noprint;&lt;BR /&gt;&amp;nbsp; id _all_;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;%macro geodist;&lt;/P&gt;&lt;P&gt;%do i=1 %to 1000;&lt;/P&gt;&lt;P&gt;data loc&amp;amp;i; set sampledata; if replicate=&amp;amp;i; drop replicate; recid+1; run;&lt;BR /&gt;data loc&amp;amp;i; retain recid; set loc&amp;amp;i; run;&lt;BR /&gt;data geodist&amp;amp;i(drop=_:);&lt;BR /&gt;&amp;nbsp; set loc&amp;amp;i nobs=nobs;&lt;BR /&gt;&amp;nbsp; if _n_=1 then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if 0 then set loc&amp;amp;i loc&amp;amp;i(keep=lat lon rename=(lat=hlat lon=hlon));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash h1(dataset:"loc&amp;amp;i(keep=recid lat lon rename=(lat=hlat lon=hlon))");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h1.defineKey("recid");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h1.defineData("hlat","hlon");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h1.defineDone();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp; do _i= (recid+1) to nobs;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h1.find(key:_i);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; geodist=geodist(lat, lon, hlat, hlon, "m");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;run;&lt;BR /&gt;proc kde data=geodist&amp;amp;i;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; univar geodist/method=srot out=kout&amp;amp;i plots=NONE NOPRINT;&lt;BR /&gt;run;&lt;BR /&gt;data kout&amp;amp;i; set kout&amp;amp;i; keep density; run;&lt;/P&gt;&lt;P&gt;%end; &lt;/P&gt;&lt;P&gt;%mend geodist;&lt;/P&gt;&lt;P&gt;%geodist;&lt;/P&gt;&lt;P&gt;%put END TIME: %sysfunc(datetime(),datetime14.);&lt;BR /&gt;%put PROCESSING TIME:&amp;nbsp; %sysfunc(putn(%sysevalf(%sysfunc(TIME())-&amp;amp;datetime_start.),mmss.)) (mm:ss) ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My task is (1) to create a date set with 1 million longitude-latitude observations, (2) to sample 5500 observations 1000 times (hence, 1000 data sets), (3) to calculate the pair-wise distances for every dataset, and (4) to draw kernel densities. This is a huge calculation. The SAS system crashed about at the 80-th iteration with complaining that it did not have sufficient resources.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My question is whether or not the code can be modified to increase the calculation performance by minimize the iteration process. If there is no room for improvement, I may have to go down to a low-level programming, such as Fortran, C, and so on.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you very much!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 30 Nov 2014 13:59:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191251#M36088</guid>
      <dc:creator>tesu</dc:creator>
      <dc:date>2014-11-30T13:59:04Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191252#M36089</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So what is the exact SAS error message and on what step within your program did it crash? &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 30 Nov 2014 19:10:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191252#M36089</guid>
      <dc:creator>SASKiwi</dc:creator>
      <dc:date>2014-11-30T19:10:13Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191253#M36090</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What are you expecting to get in the &lt;STRONG&gt;original&lt;/STRONG&gt; dataset :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 12.8000001907349px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;data original (drop = i);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 12.8000001907349px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&amp;nbsp;&amp;nbsp; do i = 1 to 1000000;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 12.8000001907349px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lon = -78 + ranuni(i);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 12.8000001907349px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lat = 37 + ranuni(i+1);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 12.8000001907349px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&amp;nbsp;&amp;nbsp; output;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 12.8000001907349px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&amp;nbsp;&amp;nbsp; end;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 12.8000001907349px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;run;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;using the iteration control variable &lt;STRONG&gt;i&lt;/STRONG&gt; as a random number seed for RANUNI seems awkward. It is equivalent to coding:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 13.6000003814697px;"&gt;&lt;STRONG style="font-size: 12.8000001907349px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lon = -78 + ranuni(1);&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="font-size: 13.6000003814697px;"&gt;&lt;STRONG style="font-size: 12.8000001907349px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lat = 37 + ranuni(2);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 12.8000001907349px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.8000001907349px; background-color: #ffffff;"&gt;is that what you wanted?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.8000001907349px; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.8000001907349px; background-color: #ffffff;"&gt;What is the purpose of this large simulation? Are you really interested in the distances between every points or only trying to locate neighboring clusters?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.8000001907349px; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.8000001907349px; background-color: #ffffff;"&gt;PG&lt;/SPAN&gt;&lt;STRONG style="font-size: 12.8000001907349px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 30 Nov 2014 20:12:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191253#M36090</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2014-11-30T20:12:30Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191254#M36091</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Using the code you've posted I've added a few minor optimizations to it. It still takes on my laptop around 15 sec per cycle and therefore would take more than 4 hours to run the 1000 cycles. So may-be first answering Pierre's questions is a good idea.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;options fullstimer msglevel=i;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let datetime_start = %sysfunc(TIME());&lt;/P&gt;&lt;P&gt;%put START TIME: %sysfunc(datetime(),datetime14.);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data original (drop = i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i = 1 to 1000000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lon = -78 + ranuni(i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lat = 37 + ranuni(i+1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc surveyselect data = original method = SRS rep = 1000&lt;/P&gt;&lt;P&gt;&amp;nbsp; sampsize = 5500 out = sampledata noprint;&lt;/P&gt;&lt;P&gt;&amp;nbsp; id _all_;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp; create index replicate on sampledata;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro geodist;&lt;/P&gt;&lt;P&gt;/*&amp;nbsp; %do i=1 %to 1000;*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; %do i=1 %to 10;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data loc&amp;amp;i(drop=replicate);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set sampledata(where=(replicate=&amp;amp;i) idxname=replicate);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; recid=_n_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data geodist&amp;amp;i (keep=geodist);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set loc&amp;amp;i nobs=nobs;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _n_=1 then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if 0 then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set loc&amp;amp;i loc&amp;amp;i(keep=lat lon rename=(lat=hlat lon=hlon));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash h1(dataset:"loc&amp;amp;i(keep=recid lat lon rename=(lat=hlat lon=hlon))");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h1.defineKey("recid");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h1.defineData("hlat","hlon");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h1.defineDone();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _start=(recid+1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do _i= _start to nobs;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h1.find(key:_i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geodist=geodist(lat, lon, hlat, hlon, "m");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc kde data=geodist&amp;amp;i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; univar geodist/method=srot out=kout&amp;amp;i(keep=density) plots=NONE NOPRINT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc datasets lib=work nolist nowarn;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete loc&amp;amp;i geodist&amp;amp;i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;%mend geodist;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%geodist;&lt;/P&gt;&lt;P&gt;%put END TIME: %sysfunc(datetime(),datetime14.);&lt;/P&gt;&lt;P&gt;%put PROCESSING TIME:&amp;nbsp; %sysfunc(putn(%sysevalf(%sysfunc(TIME())-&amp;amp;datetime_start.),mmss.)) (mm:ss);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 30 Nov 2014 20:39:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191254#M36091</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2014-11-30T20:39:34Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191255#M36092</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks again, Patrick. The 4-hour running time is quite long to me. I should use some C routines to do the work. -- Your hash table solution is a killer!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 30 Nov 2014 22:07:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191255#M36092</guid>
      <dc:creator>tesu</dc:creator>
      <dc:date>2014-11-30T22:07:34Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191256#M36093</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'd probably would run a 4 hour job in batch mode (writing the kout&amp;amp;i data sets to a permanent location). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If it's a one-off then I'd accept the 4 hours, if it's something you have to run more often then there would be other options to improve performance (eg. by running stuff in parallel). The end-to-end time is eventually much better in your environment with faster hardware.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The hash lookup could become faster if you set the a better value for hashexp (5 or 6 I'd guess; hashexp is a property of the hash defined during hash declaration). If not running stuff in parallel then doing everything in one go (with by group processing for Proc KDE) would likely improve performance as well. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 30 Nov 2014 22:43:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191256#M36093</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2014-11-30T22:43:45Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191257#M36094</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for further guidance, Patrick. In order to use the "by" command in the KDE procedure, I believe I need to make one big "geodist" data set with an additional group variable, which goes from 1 to the number of rep=1000. I don't know how to modify the hash process for the big geodist data, which should have the (5500*(5500-1)/2)*1000 = 1.512e+10 observations. Here, (5500*(5500-1)/2) is the number of pair-wise distances for one geodist data set. I need to study the hash operation, which is new to me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The PROCESSING TIME for [%do i=1 %to 10;] ended up with 3:48 (mm:ss).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The calculation of the pair-wise distances (15,122,250 observations) for one location sample takes up about 20 seconds. I believe I should write this tedious distance calculation job in C, and make a dll. Then, I may use it in the data step. Why I stick to SAs is because the KDE procedure is convenient. Loading a dll is a separate issue, and I may be visit again this community to ask further questions.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 30 Nov 2014 23:26:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191257#M36094</guid>
      <dc:creator>tesu</dc:creator>
      <dc:date>2014-11-30T23:26:42Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191258#M36095</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Small improovement by using array, view and by group processing: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;options fullstimer msglevel=i;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let datetime_start = %sysfunc(TIME());&lt;/P&gt;&lt;P&gt;%put START TIME: %sysfunc(datetime(),datetime14.);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data original (drop = i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i = 1 to 1000000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lon = -78 + ranuni(i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lat = 37 + ranuni(i+1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let numrep=10;&lt;/P&gt;&lt;P&gt;%let sampsize=5500;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc surveyselect data = original method = SRS rep = &amp;amp;numrep.&lt;/P&gt;&lt;P&gt;&amp;nbsp; sampsize = &amp;amp;sampsize. out = sampledata noprint;&lt;/P&gt;&lt;P&gt;&amp;nbsp; id _all_;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;options vbufsize=500M;&lt;/P&gt;&lt;P&gt;data geodist (keep=Replicate geodist) / view=geodist;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array alat[&amp;amp;sampsize.] _temporary_;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array alon[&amp;amp;sampsize.] _temporary_;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i=1 to &amp;amp;sampsize.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set sampledata;&lt;/P&gt;&lt;P&gt;&amp;nbsp; alat&lt;I&gt;=lat;alon&lt;I&gt;=lon;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=1 to &amp;amp;sampsize.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lat=alat&lt;I&gt;;lon=alon&lt;I&gt;;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j=i+1 to &amp;amp;sampsize.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geodist=geodist(lat, lon, alat&lt;J&gt;, alon&lt;J&gt;, "m");&lt;/J&gt;&lt;/J&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;proc kde data=geodist(spill=no);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; univar geodist/method=srot out=kout(keep=density) plots=NONE NOPRINT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by Replicate;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;%put END TIME: %sysfunc(datetime(),datetime14.);&lt;/P&gt;&lt;P&gt;%put PROCESSING TIME:&amp;nbsp; %sysfunc(putn(%sysevalf(%sysfunc(TIME())-&amp;amp;datetime_start.),mmss.)) (mm:ss);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 01 Dec 2014 10:46:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191258#M36095</guid>
      <dc:creator>gergely_batho</dc:creator>
      <dc:date>2014-12-01T10:46:18Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191259#M36096</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Below one way of how to run the processes in parallel. You will have to amend the code (the paths) for the code to run in your environment. Below code executed within less than 90 minutes on my Quad Core laptop with a elecromechanical hard drive. If you have more cores and a faster disk then end-to-end elapsed time could be quite a bit better.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you run this code on a server used also by other people then make sure it executes outside of business hours and/or doesn't use up all the available resources (eg. by also using statement WAITFOR) - else you will become your companies most liked person....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ods listing;&lt;/P&gt;&lt;P&gt;options fullstimer msglevel=i;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let rep=1000;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let datetime_start = %sysfunc(TIME());&lt;/P&gt;&lt;P&gt;%put START TIME: %sysfunc(datetime(),datetime14.);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;libname test 'c:\test';&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data test.original (drop = i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i = 1 to 1000000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lon = -78 + ranuni(i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lat = 37 + ranuni(i+1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc surveyselect data = test.original method = SRS rep = &amp;amp;rep&lt;/P&gt;&lt;P&gt;&amp;nbsp; sampsize = 5500 out = test.sampledata noprint;&lt;/P&gt;&lt;P&gt;&amp;nbsp; id _all_;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp; create index replicate on test.sampledata;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro geodist;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %do i=1 %to &amp;amp;rep;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename prg "c:\test\prog&amp;amp;i..sas";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file prg;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "libname test 'c:\test';"//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " data loc&amp;amp;i(drop=replicate);"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; set test.sampledata(where=(replicate=&amp;amp;i) idxname=replicate);"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; recid=_n_;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " run;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " data _null_;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; call symputx('exp',ceil(log2(nobs)));"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; stop;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; set loc&amp;amp;i nobs=nobs;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " run;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " data geodist&amp;amp;i (keep=geodist);"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; set loc&amp;amp;i nobs=nobs;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; if _n_=1 then"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if 0 then"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set loc&amp;amp;i loc&amp;amp;i(keep=lat lon rename=(lat=hlat lon=hlon));"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash h1(dataset:'loc&amp;amp;i(keep=recid lat lon rename=(lat=hlat lon=hlon))', " 'hashexp:&amp;amp;exp);'/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h1.defineKey('recid');"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h1.defineData('hlat','hlon');"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h1.defineDone();"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; _start=(recid+1);"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; do _i= _start to nobs;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h1.find(key:_i);"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geodist=geodist(lat, lon, hlat, hlon, 'm');"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; end;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " run;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " proc kde data=geodist&amp;amp;i;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; univar geodist/method=srot out=test.kout&amp;amp;i(keep=density) plots=NONE NOPRINT;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " run;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let sasbat=C:\SAS\Config\Lev1\SASApp\sas.bat;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let pgrm=prog&amp;amp;i..sas;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let test=c:\test;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let DTstamp=%sysfunc(datetime(), B8601DT.);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let cmd=&amp;amp;sasbat -sysin "&amp;amp;test\&amp;amp;pgrm";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let cmd=&amp;amp;cmd -log "&amp;amp;test\%scan(&amp;amp;pgrm,1,.)_&amp;amp;DTstamp..log";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let cmd=&amp;amp;cmd -print "&amp;amp;test\%scan(&amp;amp;pgrm,1,.)_&amp;amp;DTstamp..lst";&lt;/P&gt;&lt;P&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; %let cmd=&amp;amp;cmd -Metauser "&amp;amp;Metauser" -Metapass "&amp;amp;Metapass";*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let cmd=&amp;amp;cmd -ICON -NOSPLASH;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* batch submit current program */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; systask command %unquote(%str(%')&amp;amp;cmd%str(%'))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status&amp;nbsp;&amp;nbsp;&amp;nbsp; =S012345_&amp;amp;DTstamp&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mname&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =taskname&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nowait &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call sleep(1,1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stop;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%mend geodist;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%geodist;&lt;/P&gt;&lt;P&gt;%put END TIME: %sysfunc(datetime(),datetime14.);&lt;/P&gt;&lt;P&gt;%put PROCESSING TIME:&amp;nbsp; %sysfunc(putn(%sysevalf(%sysfunc(TIME())-&amp;amp;datetime_start.),mmss.)) (mm:ss);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 01 Dec 2014 13:40:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191259#M36096</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2014-12-01T13:40:02Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191260#M36097</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much, Patrick. The running time was around 18~19 minutes on my laptop (i3-3120M, 16GB DDR3 RAM, and a SSD). Great improvement. I will try hard to study the parallel processing that you provide, but for now I have just one question. After the job had been finished, I can't find any "&lt;STRONG&gt;kout&amp;amp;i&lt;/STRONG&gt;" dataset, which is the output dataset from the KDE procedure. I need to collect those datasets to do something else. Each kout&amp;amp;i dataset has just one column the variable of which is density. I need to make a big matrix that has the 1000 density&amp;amp;i variables. -- Lots to learn in this world, and life is great!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Miscellaneous: Why do we need &lt;SPAN style="color: #000000;"&gt;two dots&lt;/SPAN&gt; as in &lt;SPAN style="color: #800080; font-size: 10pt; font-family: Courier New;"&gt;"c:\test\prog&amp;amp;i..sas" &lt;SPAN style="color: #000000; font-family: arial,helvetica,sans-serif;"&gt;and two &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; font-family: arial,helvetica,sans-serif;"&gt;slashes&lt;/SPAN&gt; as in "libname test 'c:\test';"// ?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Dec 2014 02:17:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191260#M36097</guid>
      <dc:creator>tesu</dc:creator>
      <dc:date>2014-12-02T02:17:10Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191261#M36098</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hmm... 18-19 minutes but then you miss the output. Looks to me rather that it didn't work for you. There is the following code bit in the program:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call sleep(1,1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stop;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What this does is waiting 1 second after every single iteration. So submitting 1000 jobs takes already more than 16 minutes. I would assume that the additional time spend is for the pre-steps and the program waiting to get a slot for another process.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I assume you haven't amended all the paths in the previously posted program for it to work in your environment. I've moved now this environment specific stuff at the beginning of the code. Make sure you pass values/paths fit for your environment.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When a macro variable resolves and it's ended with a dot, the dot gets consumed. So in order to get to something like &lt;SPAN style="color: #800080; font-family: 'Courier New'; background-color: #ffffff;"&gt;"c:\test\prog10.sas"&lt;/SPAN&gt; I need to have a second dot to feed to the macro variable &amp;amp;i &lt;SPAN style="color: #800080; font-family: 'Courier New'; background-color: #ffffff;"&gt;"c:\test\prog&amp;amp;i..sas"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That's part of the PUT statement. The code below&lt;/P&gt;&lt;P&gt;filename prg "&amp;amp;dir_path\prog10.sas";&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file prg;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PUT &lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;"libname test 'c:\test';"//&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;Would write to file &lt;SPAN style="color: #993300;"&gt;&amp;amp;dir_path\prog10.sas&lt;/SPAN&gt; a string &lt;SPAN style="color: #800000;"&gt;libname test 'c:\test';&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;This is a way of dynamically generating SAS code. You then can %include this code later on or as I do use "systask" and execute the generated code as a child process in batch.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;The 2 slashes belong to the PUT statement and simply add 2 line breaks so the generated code will look nicer.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;And here the newest code version&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;######################################&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Directory for output (generated SAS code, logs, data) */&lt;/P&gt;&lt;P&gt;%let dir_path=c:\test;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Libref for result data sets */&lt;/P&gt;&lt;P&gt;%let outlibref=test;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* number of iterations */&lt;/P&gt;&lt;P&gt;%let rep=2;&lt;/P&gt;&lt;P&gt;/*%let rep=1000;*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/***** no changes below required ******/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;options fullstimer msglevel=i;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let datetime_start = %sysfunc(TIME());&lt;/P&gt;&lt;P&gt;%put START TIME: %sysfunc(datetime(),datetime14.);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;libname &amp;amp;outlibref "&amp;amp;dir_path";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data &amp;amp;outlibref..original (drop = i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i = 1 to 1000000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lon = -78 + ranuni(i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lat = 37 + ranuni(i+1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc surveyselect data = &amp;amp;outlibref..original method = SRS rep = &amp;amp;rep&lt;/P&gt;&lt;P&gt;&amp;nbsp; sampsize = 5500 out = &amp;amp;outlibref..sampledata noprint;&lt;/P&gt;&lt;P&gt;&amp;nbsp; id _all_;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp; create index replicate on &amp;amp;outlibref..sampledata;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro geodist;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %do i=1 %to &amp;amp;rep;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename prg "&amp;amp;dir_path\prog&amp;amp;i..sas";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file prg;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "libname &amp;amp;outlibref '&amp;amp;dir_path';"//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " data loc&amp;amp;i(drop=replicate);"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; set &amp;amp;outlibref..sampledata(where=(replicate=&amp;amp;i) idxname=replicate);"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; recid=_n_;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " run;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " data _null_;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; call symputx('exp',ceil(log2(nobs)));"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; stop;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; set loc&amp;amp;i nobs=nobs;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " run;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " data geodist&amp;amp;i (keep=geodist);"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; set loc&amp;amp;i nobs=nobs;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; if _n_=1 then"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if 0 then"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set loc&amp;amp;i loc&amp;amp;i(keep=lat lon rename=(lat=hlat lon=hlon));"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash h1(dataset:'loc&amp;amp;i(keep=recid lat lon rename=(lat=hlat lon=hlon))', " 'hashexp:&amp;amp;exp);'/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h1.defineKey('recid');"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h1.defineData('hlat','hlon');"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h1.defineDone();"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; _start=(recid+1);"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; do _i= _start to nobs;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rc=h1.find(key:_i);"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; geodist=geodist(lat, lon, hlat, hlon, 'm');"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; end;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " run;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " proc kde data=geodist&amp;amp;i;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; univar geodist/method=srot out=&amp;amp;outlibref..kout&amp;amp;i(keep=density) plots=NONE NOPRINT;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " run;"/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let sasbat=C:\SAS\Config\Lev1\SASApp\sas.bat;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let pgrm=prog&amp;amp;i..sas;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let DTstamp=%sysfunc(datetime(), B8601DT.);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let cmd=&amp;amp;sasbat -sysin "&amp;amp;dir_path\&amp;amp;pgrm";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let cmd=&amp;amp;cmd -log "&amp;amp;dir_path\%scan(&amp;amp;pgrm,1,.)_&amp;amp;DTstamp..log";&lt;/P&gt;&lt;P&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; %let cmd=&amp;amp;cmd -log "&amp;amp;dir_path\%scan(&amp;amp;pgrm,1,.)_#Y#m#d#H#M#s_#p.log" -logparm "rollover=auto";*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let cmd=&amp;amp;cmd -print "&amp;amp;dir_path\%scan(&amp;amp;pgrm,1,.)_&amp;amp;DTstamp..lst";&lt;/P&gt;&lt;P&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; %let cmd=&amp;amp;cmd -Metauser "&amp;amp;Metauser" -Metapass "&amp;amp;Metapass";*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let cmd=&amp;amp;cmd -ICON -NOSPLASH;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* batch submit current program */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; systask command %unquote(%str(%')&amp;amp;cmd%str(%'))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status&amp;nbsp;&amp;nbsp;&amp;nbsp; =S012345_&amp;amp;DTstamp&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mname&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =taskname&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nowait&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call sleep(1,1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stop;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%mend geodist;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%geodist;&lt;/P&gt;&lt;P&gt;%put END TIME: %sysfunc(datetime(),datetime14.);&lt;/P&gt;&lt;P&gt;%put PROCESSING TIME:&amp;nbsp; %sysfunc(putn(%sysevalf(%sysfunc(TIME())-&amp;amp;datetime_start.),mmss.)) (mm:ss);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Dec 2014 10:18:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191261#M36098</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2014-12-02T10:18:02Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191262#M36099</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Now to your questions of how to combine the KOUT tables. Below code should give you what your after. You can copy this code at the end of the first program (without the definitions for &amp;amp;dir_path and &amp;amp;outlibref) or you can run it separately after the first program finished.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Make sure to only run it after all child processes finished. As systask uses "nowait" the last few child processes will still be running even though you've got control back to your parent session. So when running as part of the same program make sure to check what options WAIT &amp;amp; SYNC and statement WAITFOR can do for you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Directory for output tables (KOUTnnn tables) */&lt;/P&gt;&lt;P&gt;%let dir_path=c:\test;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Libref for kout data sets */&lt;/P&gt;&lt;P&gt;%let outlibref=test;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;libname &amp;amp;outlibref "&amp;amp;dir_path";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql noprint;&lt;/P&gt;&lt;P&gt;&amp;nbsp; create table kout_tables as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select cats(libname,'.',memname,'(keep=density rename=(density=density',compress(memname,,'kd'),'))') as string&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; from dictionary.tables&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname="%upcase(&amp;amp;outlibref)" and prxmatch('/kout\d+ *$/oi',memname)&amp;gt;0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;filename codegen temp;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;/*&amp;nbsp; file print;*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; file codegen;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set kout_tables end=last;&lt;/P&gt;&lt;P&gt;&amp;nbsp; put string;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if last then put ';';&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data &amp;amp;outlibref..kout_all;&lt;/P&gt;&lt;P&gt;&amp;nbsp; merge&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %include codegen;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Dec 2014 10:54:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191262#M36099</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2014-12-02T10:54:20Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191263#M36100</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;EDIT: Your code works after I changed the &lt;EM&gt;%let sasbat&lt;/EM&gt; statement to &lt;STRONG&gt;%let sasbat="C:\Program Files\SASHome\SASFoundation\9.3\sas.exe";&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;=== [ Work history ] ===&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you very much again for the update, Patrick. Same as before, the code did not generate any output. I DID NOT run the second section of your SAS code that combines the &lt;EM&gt;kout&lt;/EM&gt; datasets. I include the log message and how the working folder and the &lt;EM&gt;test&lt;/EM&gt; library look like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I changed the working folder from &lt;EM&gt;c:\test&lt;/EM&gt; to &lt;STRONG&gt;&lt;EM&gt;d:\patrick&lt;/EM&gt;&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;I set the number of task iteration as two: &lt;EM&gt;&lt;STRONG&gt;%let rep=2;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;========================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: The file PRG is:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Filename=d:\patrick\prog1.sas,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RECFM=V,LRECL=256,File Size (bytes)=0,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Last Modified=02Dec2014:15:03:10,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create Time=02Dec2014:14:42:40&lt;/P&gt;&lt;P&gt;NOTE: 37 records were written to the file PRG.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The minimum record length was 0.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The maximum record length was 100.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 277.93k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS Memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13252.00k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Timestamp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12/02/2014 03:03:10 PM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: Task "task0" produced no LOG/Output.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.01 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.01 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 232.34k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS Memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13252.00k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Timestamp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12/02/2014 03:03:11 PM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: The file PRG is:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Filename=d:\patrick\prog2.sas,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RECFM=V,LRECL=256,File Size (bytes)=0,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Last Modified=02Dec2014:15:03:11,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create Time=02Dec2014:14:42:41&lt;/P&gt;&lt;P&gt;NOTE: 37 records were written to the file PRG.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The minimum record length was 0.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The maximum record length was 100.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 231.50k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS Memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13252.00k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Timestamp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12/02/2014 03:03:11 PM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: Task "task1" produced no LOG/Output.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 232.34k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS Memory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13252.00k&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Timestamp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12/02/2014 03:03:12 PM&lt;/P&gt;&lt;P&gt;=======================================&lt;/P&gt;&lt;P&gt;&lt;IMG __jive_id="8132" alt="pic_library.JPG" class="jive-image" src="https://communities.sas.com/legacyfs/online/8132_pic_library.JPG" /&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG __jive_id="8133" alt="pic_patrick_folder.JPG" class="jive-image-thumbnail jive-image" src="https://communities.sas.com/legacyfs/online/8133_pic_patrick_folder.JPG" width="450" /&gt;&lt;/P&gt;&lt;P&gt;Something goes wrong in the batch mode processing? The main LOG says "NOTE: Task "task0" produced no LOG/Output." The batch processing is completely a new area to me, but I will study those material. I am googling cases that SAS batch processing produces no outputs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you very much again for all of your responses.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;EDIT:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;I am reading this blog: &lt;A href="http://www.sas-programming.com/2009/03/leverage-multi-core-with-single-core.html" title="http://www.sas-programming.com/2009/03/leverage-multi-core-with-single-core.html"&gt;SAS Programming for Data Mining: Parallel Processing with Single-Thread SAS license&lt;/A&gt;, which seems to be closely relevant to my problem. It seems that &lt;EM&gt;systask command&lt;/EM&gt; operation is the product of SAS/CONNECT? My SAS license DOES contain that product.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;EDIT:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;From your comment in this thread: &lt;A _jive_internal="true" href="https://communities.sas.com/message/220782"&gt;https://communities.sas.com/message/220782&lt;/A&gt;, I changed your &lt;EM&gt;%let sasbat&lt;/EM&gt; statement to &lt;STRONG&gt;%let sasbat="C:\Program Files\SASHome\SASFoundation\9.3\sas.exe";&lt;/STRONG&gt;. Now, it worked. I have the kout datasets in the test library, and in the d:\patrick.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Dec 2014 20:06:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191263#M36100</guid>
      <dc:creator>tesu</dc:creator>
      <dc:date>2014-12-02T20:06:01Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191264#M36101</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Forgot to move one thing to the top of the code for you to amend:&amp;nbsp; &lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;%let sasbat=C:\SAS\Config\Lev1\SASApp\sas.bat;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the path to the SAS executable (sas.exe) or a .bat file which then calls internally the SAS executable. This must point to the correct location in your environment.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The article you've posted shows ways of how to run stuff in parallel without SAS/Connect licensed. This includes the usage of SYSTASK. Just make sure that your environment doesn't have option NOXCMD set. It must be XCMD.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Dec 2014 20:35:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191264#M36101</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2014-12-02T20:35:00Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191265#M36102</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We are talking to each other real time right now. Yes. I did it. And it worked. Please look at my edited previous reply. I will get back to you with the total computation time for the 1,000 iterations.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Dec 2014 20:41:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191265#M36102</guid>
      <dc:creator>tesu</dc:creator>
      <dc:date>2014-12-02T20:41:47Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191266#M36103</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Good. Let me know what the result was once your done.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Dec 2014 20:44:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191266#M36103</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2014-12-02T20:44:54Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191267#M36104</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Patrick,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to suppress producing unnecessary log files. I erase the following lines from your original code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;options fullstimer msglevel=i;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;%let DTstamp=%sysfunc(datetime(), B8601DT.); &lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;%let cmd=&amp;amp;cmd -log "&amp;amp;dir_path\%scan(&amp;amp;pgrm,1,.)_&amp;amp;DTstamp..log&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;%let cmd=&amp;amp;cmd -print "&amp;amp;dir_path\%scan(&amp;amp;pgrm,1,.)_&amp;amp;DTstamp..lst&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;status&amp;nbsp;&amp;nbsp;&amp;nbsp; =S012345_&amp;amp;DTstamp&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;mname&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =taskname&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;And I added&lt;/P&gt;&lt;P&gt;&lt;EM&gt;"options nonotes nosource nosource2 errors=0;"/&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;after &lt;EM&gt;put&lt;/EM&gt; in hoping not to produce log files for each individual iteration.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But I still see prog1.log, prog2.log, ..., prog1000.log log files in the folder that has the main SAS code. There could be a procedure to direct those log files to other directory. However, I don't need all the log files.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Dec 2014 21:31:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191267#M36104</guid>
      <dc:creator>tesu</dc:creator>
      <dc:date>2014-12-02T21:31:51Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191268#M36105</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;A SAS job produces a log file. You can direct it to another path and you can also influence the amount of log messages, eg. by using NONOTES (you need to add this to the generated code inside the PUT statement or you pass it in as a parameter to SYSTASK command in the form "-nonotes ".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;%let cmd=&amp;amp;cmd -log "&amp;amp;dir_path\&lt;STRONG&gt;logs&lt;/STRONG&gt;\%scan(&amp;amp;pgrm,1,.)_&amp;amp;DTstamp..log &lt;STRONG&gt;-nonotes -nosource -nosource2 -errors=0 &lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;%let cmd=&amp;amp;cmd -print "&amp;amp;dir_path\&lt;STRONG&gt;output&lt;/STRONG&gt;\%scan(&amp;amp;pgrm,1,.)_&amp;amp;DTstamp..lst&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;Make sure the 2 sub-directories LOGS and OUTPUT exist.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;I personlly believe that LOG is valuable information so I wouldn't reduce it too much - and it won't take up a lot of time for SAS to write these logs.&lt;EM style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Dec 2014 22:02:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191268#M36105</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2014-12-02T22:02:07Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191269#M36106</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Patrick. The processing time was:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;PROCESSING TIME:&amp;nbsp;&amp;nbsp;&amp;nbsp; 107 (mm:ss)&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It is a great improvement, but worth trying one more thing. Write a C code to calculate pair-wise distances because the distances calculation is the most time-consuming task. I can write it in C, but I don't know how to use the C in SAS. After I write the C code, I will revisit the SAS community and launch a separate question.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you very much for your help. I learned a lot from you. Good old times...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;William&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Dec 2014 00:41:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191269#M36106</guid>
      <dc:creator>tesu</dc:creator>
      <dc:date>2014-12-03T00:41:50Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough resources: Simulation and the calculation of pair-wise distances</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191270#M36107</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm out of my depth when it comes to C programming. The following link might give you guidance when it comes to calling a DLL from SAS&amp;nbsp; &lt;A class="active_link" href="http://support.sas.com/documentation/cdl/en/hostwin/63047/HTML/default/viewer.htm#p0ci2uz7qsaysbn18h1ct1itaqp4.htm" title="http://support.sas.com/documentation/cdl/en/hostwin/63047/HTML/default/viewer.htm#p0ci2uz7qsaysbn18h1ct1itaqp4.htm"&gt;SAS(R) 9.3 Companion for Windows&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You're definitely seeking the challenge here. As much as I know SAS Procedures are using a C compiler. But of course: If you write your code directly in C and for exactly your case then you might very well be able to beat the SAS Proc.&lt;/P&gt;&lt;P&gt;If you succeed: Very curious to learn how much you could improve performance. Please add a link (reference) here in this thread once you post your follow-up question/results so that I don't miss it. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Dec 2014 07:04:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Not-enough-resources-Simulation-and-the-calculation-of-pair-wise/m-p/191270#M36107</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2014-12-03T07:04:19Z</dc:date>
    </item>
  </channel>
</rss>

