<!-- 
RSS generated by JIRA (8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b) at Sat Feb 10 15:53:23 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-454] Make findAndTraceApertures go faster</title>
                <link>https://pfspipe.ipmu.jp/jira/browse/PIPE2D-454</link>
                <project id="10002" key="PIPE2D">DRP 2-D Pipeline</project>
                    <description>&lt;p&gt;The &lt;tt&gt;findAndTraceApertures&lt;/tt&gt; function consumes a lot of time in &lt;tt&gt;constructFiberFlat.py&lt;/tt&gt; and &lt;tt&gt;constructFiberTrace.py&lt;/tt&gt;. I ran a profile on it, and found the following under the call graph:&lt;/p&gt;

&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;
           32.7  .........     309.79 / 320.70       pfs::drp::stella::FiberTraceSet&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;&amp;gt; pfs::drp::stella::math::findAndTraceApertures&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;&amp;gt;(lsst::afw::image::MaskedImage&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;&amp;gt; &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, pfs::drp::stella::DetectorMap &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, pfs::drp::stella::FiberTraceFindingControl &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, pfs::drp::stella::FiberTraceFunctionControl &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, pfs::drp::stella::FiberTraceProfileFittingControl &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;) [123]
[124]      32.7     309.79      62.12 / 247.66     pfs::drp::stella::math::FindCenterPositionsOneTraceResult pfs::drp::stella::math::findCenterPositionsOneTrace&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;&amp;gt;(lsst::afw::image::Image&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;&amp;gt;&amp;amp;, lsst::afw::image::Image&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;&amp;gt; &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, pfs::drp::stella::FiberTraceFindingControl &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, lsst::geom::Point&amp;lt;&lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;, 2&amp;gt; &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;)
           16.1  .........     153.05 / 153.05       std::_Rb_tree_increment(std::_Rb_tree_node_base &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;*) [154]
            6.3  .........      59.61 / 59.62        ndarray::ArrayBase&amp;lt;ndarray::Array&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;, 2, 1&amp;gt; &amp;gt;::end() &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt; [208]
            1.2  .........      11.60 / 34.37        boost::intrusive_ptr&amp;lt;ndarray::detail::Core&amp;lt;1&amp;gt; &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;gt;::~intrusive_ptr() [215]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I think there&apos;s some low-hanging fruit for making this go faster.&lt;/p&gt;</description>
                <environment></environment>
        <key id="13760">PIPE2D-454</key>
            <summary>Make findAndTraceApertures go faster</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>Thu, 12 Sep 2019 19:29:13 +0000</created>
                <updated>Tue, 17 Sep 2019 22:47:15 +0000</updated>
                            <resolved>Tue, 17 Sep 2019 22:47:15 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                <comments>
                            <comment id="16070" author="price" created="Thu, 12 Sep 2019 19:53:17 +0000"  >&lt;p&gt;I removed what appears to be vestigial code that was chewing up a lot of the runtime, and reduced the runtime for &lt;tt&gt;constructFiberFlat.py&lt;/tt&gt; from 948 sec to 648 sec (almost 32% gain). This removes &lt;tt&gt;findAndTraceApertures&lt;/tt&gt; from the list of tall poles (tall poles for &lt;tt&gt;constructFiberFlat.py&lt;/tt&gt; are now related to I/O and image combination). Here&apos;s the call graph for &lt;tt&gt;findCenterPositionsOneTrace&lt;/tt&gt; (same function as above):&lt;/p&gt;

&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;
            1.7  .........      11.03 / 21.71        pfs::drp::stella::FiberTraceSet&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;&amp;gt; pfs::drp::stella::math::findAndTraceApertures&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;&amp;gt;(lsst::afw::image::MaskedImage&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;&amp;gt; &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, pfs::drp::stella::DetectorMap &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, pfs::drp::stella::FiberTraceFindingControl &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, pfs::drp::stella::FiberTraceFunctionControl &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, pfs::drp::stella::FiberTraceProfileFittingControl &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;) [220]
[246]       1.7      11.03       1.88 / 9.15       pfs::drp::stella::math::FindCenterPositionsOneTraceResult pfs::drp::stella::math::findCenterPositionsOneTrace&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;, &lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;&amp;gt;(lsst::afw::image::Image&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;&amp;gt;&amp;amp;, lsst::afw::image::Image&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;&amp;gt; &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, pfs::drp::stella::FiberTraceFindingControl &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, lsst::geom::Point&amp;lt;&lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;, 2&amp;gt; &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;)
            0.8  .........       5.33 / 5.33         bool MPFitGaussLim&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;&amp;gt;(ndarray::Array&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;, 1, 1&amp;gt; &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, ndarray::Array&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;, 1, 1&amp;gt; &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, ndarray::Array&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;, 1, 1&amp;gt; &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, ndarray::Array&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;, 1, 1&amp;gt; &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, ndarray::Array&amp;lt;&lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;, 2, 1&amp;gt; &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, ndarray::Array&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;, 2, 1&amp;gt; &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;amp;, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;, bool, ndarray::Array&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;, 1, 1&amp;gt;&amp;amp;, ndarray::Array&amp;lt;&lt;span class=&quot;code-object&quot;&gt;float&lt;/span&gt;, 1, 1&amp;gt;&amp;amp;, bool) [291]
            0.3  .........       1.65 / 3.78         __GI___exp [336]
            0.1  .........       0.63 / 1.02         boost::intrusive_ptr&amp;lt;ndarray::detail::Core&amp;lt;1&amp;gt; &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt;&amp;gt;::~intrusive_ptr() [584]
[...]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="16074" author="price" created="Thu, 12 Sep 2019 22:03:18 +0000"  >&lt;p&gt;This appears to shave at least four and perhaps as many as seven or eight minutes off the Travis integration test.&lt;/p&gt;</comment>
                            <comment id="16085" author="price" created="Tue, 17 Sep 2019 22:47:15 +0000"  >&lt;p&gt;Merged to master.&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|zy00co:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10100" key="com.atlassian.jira.plugin.system.customfieldtypes:userpicker">
                        <customfieldname>Reviewers</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>hassan</customfieldvalue>

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