<!-- 
RSS generated by JIRA (8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b) at Sat Feb 10 16:01:46 JST 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>PFS-JIRA</title>
    <link>https://pfspipe.ipmu.jp/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.3.4</version>
        <build-number>803005</build-number>
        <build-date>13-09-2019</build-date>
    </build-info>


<item>
            <title>[PIPE2D-1038] Investigate parsl plugin for processing on cluster</title>
                <link>https://pfspipe.ipmu.jp/jira/browse/PIPE2D-1038</link>
                <project id="10002" key="PIPE2D">DRP 2-D Pipeline</project>
                    <description>&lt;p&gt;The Gen3 middleware will allow us to run our pipeline over multiple nodes. We need a middleware plugin that will work with our Slurm (or PBS) clusters. The leading contender is &lt;a href=&quot;https://github.com/LSSTDESC/gen3_workflow&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;the parsl plugin developed by DESC&lt;/a&gt;.&lt;/p&gt;</description>
                <environment></environment>
        <key id="22764">PIPE2D-1038</key>
            <summary>Investigate parsl plugin for processing on cluster</summary>
                <type id="10001" iconUrl="https://pfspipe.ipmu.jp/jira/secure/viewavatar?size=xsmall&amp;avatarId=10515&amp;avatarType=issuetype">Story</type>
                                            <priority id="10000" iconUrl="https://pfspipe.ipmu.jp/jira/images/icons/priorities/medium.svg">Normal</priority>
                        <status id="10002" iconUrl="https://pfspipe.ipmu.jp/jira/images/icons/statuses/generic.png" description="The issue is resolved, reviewed, and merged">Done</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="price">price</assignee>
                                    <reporter username="price">price</reporter>
                        <labels>
                    </labels>
                <created>Mon, 2 May 2022 17:36:44 +0000</created>
                <updated>Fri, 8 Jul 2022 17:12:54 +0000</updated>
                            <resolved>Fri, 8 Jul 2022 17:12:54 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                <comments>
                            <comment id="31112" author="price" created="Fri, 8 Jul 2022 17:09:20 +0000"  >&lt;p&gt;Running BPS on Tiger:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Stack requirements:&lt;br/&gt;
  + Recent LSST stack&lt;br/&gt;
  + tickets/DM-35494 of ctrl_mpexec and pipe_base&lt;br/&gt;
  + ctrl_bps_parsl&lt;br/&gt;
  + Parsl (see ctrl_bps_parsl README)&lt;/li&gt;
	&lt;li&gt;Docs:&lt;br/&gt;
  + BPS guide: &lt;a href=&quot;https://pipelines.lsst.io/modules/lsst.ctrl.bps/index.html&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://pipelines.lsst.io/modules/lsst.ctrl.bps/index.html&lt;/a&gt;&lt;br/&gt;
  + Parsl plugin guide: &lt;a href=&quot;https://github.com/lsst/ctrl_bps_parsl/blob/main/README.md&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://github.com/lsst/ctrl_bps_parsl/blob/main/README.md&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;The choice of filesystem is very important for efficient cluster use: see &lt;a href=&quot;https://researchcomputing.princeton.edu/support/knowledge-base/data-storage&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://researchcomputing.princeton.edu/support/knowledge-base/data-storage&lt;/a&gt; . &lt;tt&gt;/projects&lt;/tt&gt; and &lt;tt&gt;/tigress&lt;/tt&gt; are slow to access on cluster nodes, so you should work on &lt;tt&gt;/scratch/gpfs&lt;/tt&gt; and include &lt;tt&gt;execution_butler_copy_files.yaml&lt;/tt&gt; in your BPS config. This copies the necessary data from the primary butler repo on &lt;tt&gt;/projects&lt;/tt&gt; to an &#8220;execution butler&#8221; in your working directory (on &lt;tt&gt;/scratch/gpfs&lt;/tt&gt;), and copies the results back afterwards. This adds some overhead to the beginning and end of the processing, but it allows the processing to be efficient (and not degrade the system for other users).&lt;/li&gt;
	&lt;li&gt;When running flat construction, got about 100 ISR jobs/hour/core.&lt;/li&gt;
	&lt;li&gt;Consider strategies to obtain cluster resources:&lt;br/&gt;
  + Parsl launches Slurm jobs to obtain cluster resources; these jobs connect to the process running on the head node and execute the various tasks.&lt;br/&gt;
  + Don&#8217;t want to have more resources than can be used at once, but don&#8217;t want to be waiting a long time for resources.&lt;br/&gt;
  + Smaller and shorter jobs are easier to schedule, but are less capable and introduce overhead.&lt;br/&gt;
  + One strategy might be to use a 6 hour &#8220;singleton&#8221; job, so only one job is allowed to run at a time, while other jobs hold their place in line.&lt;br/&gt;
  + Another strategy might be to use multiple 2 hour jobs, and then you use those jobs as they become available.&lt;/li&gt;
	&lt;li&gt;Clusters make the pipeline more efficient: when running DRP, I recommend including &lt;tt&gt;${DRP_PIPE_DIR}/ingredients/clusters.yaml&lt;/tt&gt; (requires branch u/price/20220628 of drp_pipe).&lt;/li&gt;
	&lt;li&gt;Example BPS config file for flat construction:
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
pipelineYaml: &lt;span class=&quot;code-quote&quot;&gt;&quot;${CP_PIPE_DIR}/pipelines/DarkEnergyCamera/cpFlat.yaml&quot;&lt;/span&gt;
wmsServiceClass: lsst.ctrl.bps.parsl.ParslService
#computeSite: local
computeSite: tiger
includeConfigs:
  - ${CTRL_BPS_PARSL_DIR}/etc/execution_butler_copy_files.yaml
payload:
  output: u/price/20220629/flat
  butlerConfig: /projects/MERIAN/repo
  inCollection: DECam/defaults/merian,DECam/calib/curated/19700101T000000Z,DECam/calib/unbounded,u/price/20220629/calib
  dataQuery: &lt;span class=&quot;code-quote&quot;&gt;&quot;instrument=&lt;span class=&quot;code-quote&quot;&gt;&apos;DECam&apos;&lt;/span&gt; AND exposure IN (970228, 970229, 970230, 970231, 970232, 970233, 970234, 970235, 970236, 970237, 970238, 970501, 970502, 970503, 970504, 970505, 970506, 970507, 970508, 970509, 970510, 970511, 970836, 970837, 970838, 970839, 970840, 970841, 970842, 970843, 970844, 970845, 970846, 971174, 971175, 971176, 971177, 971178, 971179, 971180, 971181, 971182, 971183, 971184, 971554, 971555, 971556, 971557, 971558, 971559, 1052706, 1052707, 1052708, 1052709, 1052710, 1052711, 1052712, 1052713, 1052714, 1052715, 1052716, 1053093, 1053094, 1053095, 1053096, 1053097, 1053098, 1053099, 1053100, 1053101, 1053102, 1053103, 1053485, 1053486, 1053487, 1053488, 1053489, 1053490, 1053491, 1053492, 1053493, 1053494, 1053495, 1053858, 1053859, 1053860, 1053861, 1053862, 1053863, 1053864, 1053865, 1053866, 1053867, 1053868, 1054287, 1054288, 1054289, 1054290, 1054291, 1054292)&quot;&lt;/span&gt;
  payloadName: flat
clusterAlgorithm: lsst.ctrl.bps.quantum_clustering_funcs.dimension_clustering
saveClusteredQgraph: &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;
cluster:
    exposure_detector:
        pipetasks: isr,cpFlatMeasure
        dimensions: exposure,detector
site:
  local:
    class: lsst.ctrl.bps.parsl.sites.Local
    cores: 12
  tiger:
    class: lsst.ctrl.bps.parsl.sites.princeton.Tiger
    nodes: 1
    cores_per_node: 40
    walltime: &lt;span class=&quot;code-quote&quot;&gt;&quot;0:59:59&quot;&lt;/span&gt;  # Get into tiger-test queue
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
	&lt;li&gt;Example BPS config file for DRP on ci_hsc:
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
includeConfigs:
  - ${DRP_PIPE_DIR}/ingredients/clusters.yaml

pipelineYaml: &lt;span class=&quot;code-quote&quot;&gt;&quot;${DRP_PIPE_DIR}/pipelines/HSC/DRP-ci_hsc.yaml&quot;&lt;/span&gt;
wmsServiceClass: lsst.ctrl.bps.parsl.ParslService
computeSite: local
#computeSite: tiger
site:
  local:
    class: lsst.ctrl.bps.parsl.sites.Local
    cores: 20
  tiger:
    class: lsst.ctrl.bps.parsl.sites.princeton.Tiger
    nodes: 1
    walltime: &lt;span class=&quot;code-quote&quot;&gt;&quot;0:59:59&quot;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="31113" author="price" created="Fri, 8 Jul 2022 17:12:54 +0000"  >&lt;p&gt;The parsl plugin works nicely. I extracted the useful parts into a plugin package: &lt;a href=&quot;https://github.com/lsst/ctrl_bps_parsl&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;ctrl&amp;#95;bps&amp;#95;parsl&lt;/a&gt;, and was able to run workflows on the Princeton Tiger cluster.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_10500" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|02qpjd:00xznup2c5</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10005" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="147">2DDRP-2022 E</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    </customfields>
    </item>
</channel>
</rss>