<?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: Small C Quick sort program ran on OpenVMS Blade Server much slower than on Windows or Linux in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/small-c-quick-sort-program-ran-on-openvms-blade-server-much/m-p/6990816#M104171</link>
    <description>&lt;P&gt;&amp;gt; - check compiler options notably for optimizer and architecture&lt;BR /&gt;&amp;gt; settings. [...]&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Around here, /OPTIMIZE=LEVEL=5 made approximately no difference.&lt;BR /&gt;&lt;BR /&gt;its $ tcpip show version&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; HP TCP/IP Services for OpenVMS Industry Standard 64 Version V5.7 - ECO 2&lt;BR /&gt;&amp;nbsp; on an HP rx2660&amp;nbsp; (1.59GHz/9.0MB) running OpenVMS V8.4&lt;BR /&gt;&lt;BR /&gt;its $ cc /version&lt;BR /&gt;HP C V7.3-020 on OpenVMS IA64 V8.4&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;its $ show work&lt;BR /&gt;&amp;nbsp; Working Set (pagelets)&amp;nbsp; /Limit=133600&amp;nbsp; /Quota=267200&amp;nbsp; /Extent=2103296&lt;BR /&gt;&amp;nbsp; Adjustment enabled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Authorized Quota=267200&amp;nbsp; Authorized Extent=2103296&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; Working Set (8Kb pages) /Limit=8350&amp;nbsp; /Quota=16700&amp;nbsp; /Extent=131456&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Authorized Quota=16700&amp;nbsp; Authorized Extent=131456&lt;BR /&gt;&lt;BR /&gt;its $ cc qsort1 /obj = qsort1id&lt;BR /&gt;its $ link qsort1id&lt;BR /&gt;&lt;BR /&gt;its $ cc qsort1 /obj = qsort1io /optimize=level=5&lt;BR /&gt;its $ link qsort1io&lt;BR /&gt;&lt;BR /&gt;its $ r qsort1id&lt;BR /&gt;random tooked: 2 seconds&lt;BR /&gt;sort tooked: 32 seconds&lt;BR /&gt;&lt;BR /&gt;its $ r qsort1io&lt;BR /&gt;random tooked: 1 seconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (The random() loop may get little better.)&lt;BR /&gt;sort tooked: 32 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;gt; If it is critical, then you may need a CPU profiler to see where the&lt;BR /&gt;&amp;gt; time is spend (moving, comparing,...)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Practically all the execution is in the CRTL: HELP CRTL qsort&lt;BR /&gt;&lt;BR /&gt;&amp;gt; And... it might just be slower.&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Looks that way&amp;nbsp;(to a casual observer).&lt;/P&gt;</description>
    <pubDate>Thu, 07 Dec 2017 20:34:06 GMT</pubDate>
    <dc:creator>Steven Schweda</dc:creator>
    <dc:date>2017-12-07T20:34:06Z</dc:date>
    <item>
      <title>Small C Quick sort program ran on OpenVMS Blade Server much slower than on Windows or Linux</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/small-c-quick-sort-program-ran-on-openvms-blade-server-much/m-p/6990708#M104169</link>
      <description>&lt;P&gt;Dear everybody,&lt;/P&gt;&lt;P&gt;We try to run a simple C program as below:&lt;/P&gt;&lt;P&gt;#include &amp;lt;stdio.h&amp;gt;&lt;BR /&gt;#include &amp;lt;stdlib.h&amp;gt;&amp;nbsp; // qsort&lt;BR /&gt;#include &amp;lt;time.h&amp;gt;&lt;BR /&gt;int uint64cmpfunc ( const void * a, const void * b ) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; return ( *(unsigned long long int*)a - *(unsigned long long int*)b );&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;unsigned long long int *uint64random( unsigned long int sizw ) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long int n;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long long int *p;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; long int val1, val2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p = malloc( sizeof(unsigned long long int) * sizw );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( p == NULL )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf( stderr, "could not alloc memory\n" );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return NULL;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for( n = 0; n &amp;lt; sizw; ++n ) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; val1 = random();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; val2 = random();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p[n] = val2 + val1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return p;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;int main( int argc, char *argv[] )&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long int n = 50000000;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long int i;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long long int *vals = NULL;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; time_t begin, end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; srand( time(NULL) );&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin = time(NULL);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vals = uint64random( n );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end = time(NULL);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf( stdout, "random tooked: %ld seconds\n", end - begin );&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( vals == NULL )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (-1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin = time(NULL);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; qsort( vals, n, sizeof(unsigned long long int), uint64cmpfunc );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end = time(NULL);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf( stdout, "sort tooked: %ld seconds\n", end - begin );&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; free(vals);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;It took us around 30s to finish qsort on our BL860c i2 with 96 GB RAM. However, on my Windows 10 laptop (4 GRAM), just take less than 1 second.&lt;/P&gt;&lt;P&gt;Do you have any idea about that?&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Kanchimo&lt;/P&gt;</description>
      <pubDate>Thu, 07 Dec 2017 05:14:30 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/small-c-quick-sort-program-ran-on-openvms-blade-server-much/m-p/6990708#M104169</guid>
      <dc:creator>kanchimo</dc:creator>
      <dc:date>2017-12-07T05:14:30Z</dc:date>
    </item>
    <item>
      <title>Re: Small C Quick sort program ran on OpenVMS Blade Server much slower than on Windows or Linux</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/small-c-quick-sort-program-ran-on-openvms-blade-server-much/m-p/6990810#M104170</link>
      <description>&lt;P&gt;- check compiler options notably for optimizer and architecture settings.&amp;nbsp; OpenVMS tools default are typically on the safe and slow side.&lt;/P&gt;&lt;P&gt;- Where is the time going, and if CPU time which 'mode'&amp;nbsp; ($ MONI MODE) it should be 100% User-mode, but cosidering the size of the array there may be soft pagefaulting to access the whole array through a limites workgin set (again, openVMS starts with a safe but slow setting to make sure a user, out-of-the-box, cannot impact the whole server with other users too much.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;50,000,000 elements of 64 bytes, that's 400MB right? So that could be bigger that your workingset(extend)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;$ SHOW WORK&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Hope this helps some,&lt;/P&gt;&lt;P&gt;And... it might just be slower.&lt;/P&gt;&lt;P&gt;If it is critical, then you may need a CPU profiler to see where the time is spend (moving, comparing,...)&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Hein&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 07 Dec 2017 18:26:17 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/small-c-quick-sort-program-ran-on-openvms-blade-server-much/m-p/6990810#M104170</guid>
      <dc:creator>Hein van den Heuvel</dc:creator>
      <dc:date>2017-12-07T18:26:17Z</dc:date>
    </item>
    <item>
      <title>Re: Small C Quick sort program ran on OpenVMS Blade Server much slower than on Windows or Linux</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/small-c-quick-sort-program-ran-on-openvms-blade-server-much/m-p/6990816#M104171</link>
      <description>&lt;P&gt;&amp;gt; - check compiler options notably for optimizer and architecture&lt;BR /&gt;&amp;gt; settings. [...]&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Around here, /OPTIMIZE=LEVEL=5 made approximately no difference.&lt;BR /&gt;&lt;BR /&gt;its $ tcpip show version&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; HP TCP/IP Services for OpenVMS Industry Standard 64 Version V5.7 - ECO 2&lt;BR /&gt;&amp;nbsp; on an HP rx2660&amp;nbsp; (1.59GHz/9.0MB) running OpenVMS V8.4&lt;BR /&gt;&lt;BR /&gt;its $ cc /version&lt;BR /&gt;HP C V7.3-020 on OpenVMS IA64 V8.4&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;its $ show work&lt;BR /&gt;&amp;nbsp; Working Set (pagelets)&amp;nbsp; /Limit=133600&amp;nbsp; /Quota=267200&amp;nbsp; /Extent=2103296&lt;BR /&gt;&amp;nbsp; Adjustment enabled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Authorized Quota=267200&amp;nbsp; Authorized Extent=2103296&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; Working Set (8Kb pages) /Limit=8350&amp;nbsp; /Quota=16700&amp;nbsp; /Extent=131456&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Authorized Quota=16700&amp;nbsp; Authorized Extent=131456&lt;BR /&gt;&lt;BR /&gt;its $ cc qsort1 /obj = qsort1id&lt;BR /&gt;its $ link qsort1id&lt;BR /&gt;&lt;BR /&gt;its $ cc qsort1 /obj = qsort1io /optimize=level=5&lt;BR /&gt;its $ link qsort1io&lt;BR /&gt;&lt;BR /&gt;its $ r qsort1id&lt;BR /&gt;random tooked: 2 seconds&lt;BR /&gt;sort tooked: 32 seconds&lt;BR /&gt;&lt;BR /&gt;its $ r qsort1io&lt;BR /&gt;random tooked: 1 seconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (The random() loop may get little better.)&lt;BR /&gt;sort tooked: 32 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;gt; If it is critical, then you may need a CPU profiler to see where the&lt;BR /&gt;&amp;gt; time is spend (moving, comparing,...)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Practically all the execution is in the CRTL: HELP CRTL qsort&lt;BR /&gt;&lt;BR /&gt;&amp;gt; And... it might just be slower.&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Looks that way&amp;nbsp;(to a casual observer).&lt;/P&gt;</description>
      <pubDate>Thu, 07 Dec 2017 20:34:06 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/small-c-quick-sort-program-ran-on-openvms-blade-server-much/m-p/6990816#M104171</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2017-12-07T20:34:06Z</dc:date>
    </item>
  </channel>
</rss>

