<div dir="ltr">I submitted a job that contained 1.9 million documents, and got a crash.<div>I tried this 2 different ways:</div><div><br></div><div>First, I submitted files with 10000 filenames in each file - so there were 197 files.</div>
<div>This generated a GC error.<br><div><br></div><div>Then I tried 1976 files, each containing 1000 filenames.</div><div>This caused another crash - part of the error message contained the phrase "Heap table out of memory."</div>
<div><br></div><div><div>I tried 100 files contianing a total of 100,000 filenames.  It is running now (for over 15 minutes).</div><div><br></div><div><br></div><div>Is there any documentation about the various limitations of Swift, especially on OSG:</div>
<div>-max number of files to process</div><div>-max total number of bytes contained in the files processed</div><div>-max length of command line to app</div><div>-max number of nodes</div><div>-max number of slots</div><div>
<div><br></div><div><br></div><div>The swift script looks like this:</div><div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)">[wcatino@login01 df]$ cat df.swift</font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)">type file;</font></div>
<div><font face="garamond, serif" style="background-color:rgb(255,242,204)">type script;</font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)"><br></font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)">// Note that to use `bash` here, it has to be in SWIFT's 'apps' file:</font></div>
<div><font face="garamond, serif" style="background-color:rgb(255,242,204)">app (file df, file err, file out) wrapper (script wrap, script df_script, file all_files[]) {</font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)">    // this uses bash to call the wrapper script with two CLAs: directory (of input files) and target output file df</font></div>
<div><font face="garamond, serif" style="background-color:rgb(255,242,204)">    // It also sets stderr and stdout to two passed files, err and out.</font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)">    bash @wrap @df @all_files stderr=@err stdout=@out;</font></div>
<div><font face="garamond, serif" style="background-color:rgb(255,242,204)">}</font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)"><br></font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)">string dir    = (@arg("data"));</font></div>
<div><font face="garamond, serif" style="background-color:rgb(255,242,204)">script calc_df  <"df.py">;</font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)">script wrap     <"wrapper.sh">;</font></div>
<div><font face="garamond, serif" style="background-color:rgb(255,242,204)"><br></font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)">// This grabs all *.txt files in dir:</font></div><div>
<font face="garamond, serif" style="background-color:rgb(255,242,204)">file[] all_docs <filesys_mapper; location=dir, suffix=".txt">;</font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)"><br>
</font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)">foreach list_of_files, index in all_docs {</font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)">    // Top file is for the results -- if this is not created by our python, swift will fail.</font></div>
<div><font face="garamond, serif" style="background-color:rgb(255,242,204)"><br></font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)">    file df  <single_file_mapper; file=@strcat(@list_of_files, ".csv")>;</font></div>
<div><font face="garamond, serif" style="background-color:rgb(255,242,204)">    file err <single_file_mapper; file=@strcat(@list_of_files, ".err")>;</font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)">    file out <single_file_mapper; file=@strcat(@list_of_files, ".out")>;</font></div>
<div><font face="garamond, serif" style="background-color:rgb(255,242,204)"><br></font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)">    // Read the list of files as an array of string which is then passed</font></div>
<div><font face="garamond, serif" style="background-color:rgb(255,242,204)">    // to the array mapper as the array of filenames for mapping.</font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)">    string names[] = readData(list_of_files);</font></div>
<div><font face="garamond, serif" style="background-color:rgb(255,242,204)">    file all_files[] <array_mapper; files=names >;</font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)">    // Do we need to ?</font></div>
<div><font face="garamond, serif" style="background-color:rgb(255,242,204)">    // Note we have to pass both dir and doc along with the wrapper script and the actual python script: </font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)"><br>
</font></div><div><font face="garamond, serif" style="background-color:rgb(255,242,204)">    (df,err,out) = wrapper (wrap, calc_df, all_files);</font></div></div><div><br></div><div><br></div><div>Any help would be appreciated.</div>
<div>Sincerely,</div><div> <br></div><div dir="ltr"><span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:'Times New Roman';vertical-align:baseline;white-space:pre-wrap">William Catino, Ph.D.</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:'Times New Roman';vertical-align:baseline;white-space:pre-wrap">Principal Software Engineer</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:'Times New Roman';vertical-align:baseline;white-space:pre-wrap">Knowledge Lab | Computation Institute | University of Chicago</span></p>
<p style="margin-top:0pt;margin-bottom:0pt"><font color="#1155cc" face="Times New Roman"><span style="font-size:15px;line-height:17.25px;white-space:pre-wrap"><u><a href="mailto:wcatino@uchicago.edu">wcatino@uchicago.edu</a></u></span></font></p>
<p style="margin-top:0pt;margin-bottom:0pt"><font color="#1155cc" face="Times New Roman"><span style="font-size:15px;line-height:17.25px;white-space:pre-wrap"><u><br></u></span></font></p></span></div>
</div></div></div></div>