<?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: Parallel Assign() is slow on certain devices in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/432712#M68244</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14411"&gt;@Robbb&lt;/a&gt;, two thoughts:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Programming for speed&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The goal of your code can have a big effect on how you write it.&amp;nbsp; For the vast majority of the scripts the additional time it takes to call a function or copy a symbol doesn't matter, so yes you should use functions and make the code easy to interpret.&amp;nbsp; On the other hand if you are working a project that will is large and will be repeated enough times that you care how long it takes, then yes you might want to start trading some niceties for raw performance.&amp;nbsp; I encourage you to only spend time optimizing things that actually matter though.&amp;nbsp; Don't spend an extra hour coding something now, and then have to spend an extra hour figuring out what you did after a year because you made it more complex trying to speed it up, just to save users an extra 20 seconds once per day.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Parallel trade off&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;When deciding whether to execute in parallel you need to balance the overhead of setting up that 'child' thread with the work it is going to do.&amp;nbsp; Imagine that you were going to run parallel jobs by opening another copy of JMP, opening a data table, and clicking run. If you leave it running for an hour then great, you will save a bunch of time over just letting one script do everything, but if that script is going to run for 20 seconds then you probably spent more time starting it then you saved.&amp;nbsp; Yes the overhead here is a lot smaller, but copying symbols and allocating memory does take time.&amp;nbsp; Make sure the work your script will do after the environment is set up is substantial.&amp;nbsp; One way you can help make this happens is to break your loop up into just 4 parts and have each thread work on a quarter of the values at once.&amp;nbsp; So, break your list into four parts, each with a quarter of the rows, and then have your script sequentially process each sub list. That way you reduce the time spent setting up child threads from n row() times to 4.&lt;/P&gt;</description>
    <pubDate>Wed, 03 Nov 2021 17:36:15 GMT</pubDate>
    <dc:creator>ih</dc:creator>
    <dc:date>2021-11-03T17:36:15Z</dc:date>
    <item>
      <title>Parallel Assign() is slow on certain devices</title>
      <link>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/428225#M67755</link>
      <description>&lt;P&gt;Hi everybody,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;there seems to be a problem with Parallel Assign() in combination with certain systems.&lt;/P&gt;&lt;P&gt;I have got access to 3 Windows 10 PCs with JMP 16.1.:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Laptop: Core i5-8350U (4 cores) @ 1.9 GHz, 16GB Ram&lt;/LI&gt;&lt;LI&gt;Old Workstation: Xeon E5-1660 v4 (8cores)&amp;nbsp;@ 3.2 GHz, 256GB Ram&lt;/LI&gt;&lt;LI&gt;New Workstation Xeon W-2145 (8 cores)&amp;nbsp;@3.7 GHz, 128GB Ram&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;I compared the performance of the parallel and the sequential version of my test script using different problem sizes on all systems (scipt below).&lt;/P&gt;&lt;P&gt;The result was surprisingly bad. Only on my laptop the parallel version is slightly faster than the sequential version, but up to more than 2 times slower on the workstations.&lt;/P&gt;&lt;P&gt;Did anyone experience similar performance issues with Parallel Assign()? Or am I using it wrong? What is going on here?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Robbb_0-1634651585833.png" style="width: 999px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/36829i2ED52F8713CC6EC9/image-size/large?v=v2&amp;amp;px=999" role="button" title="Robbb_0-1634651585833.png" alt="Robbb_0-1634651585833.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Robbb_1-1634651710129.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/36830iE6ED4ED0FF828149/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Robbb_1-1634651710129.png" alt="Robbb_1-1634651710129.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;n_different_ids = 100000;
&lt;BR /&gt;// Just generate random data. Every 15 rows must be processed at the same time.
DT_Data = J( 15*n_different_ids, 9, 0 );
For ( i = 1, i &amp;lt;= n_different_ids, i++,
	DT_Data[15*(i-1)+(1::15),0] = i + J( 15, 9, Random Normal() );
);
&lt;BR /&gt;// some function
F_percentile = Function( {x , p},
	x = Sort Ascending(x);
	n = N Rows(x);
	index = 1 + (n - 1) * p;
	index_ibelow = Floor(index);
	index_iabove = Ceiling(index);
	h = index - index_ibelow;
	result = (1 - h) * x[index_ibelow] + h * x[index_iabove];
	result;
);
&lt;BR /&gt;// parallel version
DT_Features = J( n_different_ids, 16, 0 );
start=tick seconds();
Parallel Assign( {
		DT_Data = DT_Data,
		F_percentile = Name Expr( F_percentile )
	},
	DT_Features[i,j] = (
		i_same_group = Loc(DT_Data[15*(i-1)+(1::15), 1]);
		data = DT_Data[15*(i-1)+i_same_group, 1+Ceiling(j/2)];
		If (mod(j,2),
			result = F_percentile(data, 0.95);
		,
			result = F_percentile(data, 0.05);
		);
		result;
	)		
);
time_parallel = tick seconds()-start;
Show(time_parallel);
Wait(0.1);
&lt;BR /&gt;// sequential version
DT_Features = J( n_different_ids, 16, 0 );
start=tick seconds();
for(i=1,i&amp;lt;=n_different_ids,i++,
	for(j=1,j&amp;lt;=16,j++,
		i_same_group = Loc(DT_Data[15*(i-1)+(1::15), 1]);
		data = DT_Data[15*(i-1)+i_same_group, 1+Ceiling(j/2)];
		If (mod(j,2),
			result = F_percentile(data, 0.95);
		,
			result = F_percentile(data, 0.05);
		);
		DT_Features[i,j] =result;	
	);
);
time_sequential = tick seconds()-start;
Show(time_sequential);&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Jun 2023 18:03:08 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/428225#M67755</guid>
      <dc:creator>Robbb</dc:creator>
      <dc:date>2023-06-09T18:03:08Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Assign() is slow on certain devices</title>
      <link>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/428269#M67760</link>
      <description>&lt;P&gt;This is a 4-CPU 16GB ~3GHz machine JMP16/win10 under VirtualBox. I see the speed up I'd expect (not 4X, but still good.)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;n_different_ids = 100,000;&lt;/P&gt;&lt;P&gt;time_parallel = 13.9833333333333;&lt;BR /&gt;time_sequential = 37.7333333333333;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;n_different_ids = 1,000,000;&lt;BR /&gt;time_parallel = 141.233333333333;&lt;BR /&gt;time_sequential = 375.016666666667;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The parallel assign is copying a large matrix for each CPU, but the linear graphs don't suggest that to be a paging issue, at these sizes.&lt;/P&gt;&lt;P&gt;Watch the windows task monitor for CPU and Memory (and Disk) usage and see if it explains anything. I saw 100% during parallel assign and 25% during the sequential test. I also saw 7GB used during the bigger parallel assign.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="task manager" style="width: 490px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/36836iD5DE93E2FB0BAC31/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.PNG" alt="task manager" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;task manager&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 19 Oct 2021 15:59:56 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/428269#M67760</guid>
      <dc:creator>Craige_Hales</dc:creator>
      <dc:date>2021-10-19T15:59:56Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Assign() is slow on certain devices</title>
      <link>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/428463#M67775</link>
      <description>&lt;P&gt;Hi Craige,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm just looking at my worst performing Workstation now (below). I did not see anything suspicious in the Task Manager. Except CPU, nothing is close to full occupation.&lt;/P&gt;&lt;P&gt;What I also noticed is that JMP 15.2.1 is always faster in the parallel and sequential versions. In the case of&amp;nbsp; n=100,000 JMP 16.1 takes around 36s/18s (parallel/sequential) and JMP 15.2.1 31s/15s which is a little better but still far away from good parallel performance. Unfortunately, I don't have an older version available any more. I wrote this code using JMP 12 and didn't notice performance issues back then (and the PCs I was using were different, too).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Robbb_0-1634707124021.png" style="width: 999px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/36846iA283376D2D73FBF1/image-size/large?v=v2&amp;amp;px=999" role="button" title="Robbb_0-1634707124021.png" alt="Robbb_0-1634707124021.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 20 Oct 2021 05:26:51 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/428463#M67775</guid>
      <dc:creator>Robbb</dc:creator>
      <dc:date>2021-10-20T05:26:51Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Assign() is slow on certain devices</title>
      <link>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/428470#M67779</link>
      <description>&lt;P&gt;I can confirm that behaviour on my Laptop (Win 10, JMP 16.1):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;time_parallel = 158.7; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;time_sequential = 157.766666666667; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;n=1000000&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 20 Oct 2021 06:49:46 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/428470#M67779</guid>
      <dc:creator>shoffmeister</dc:creator>
      <dc:date>2021-10-20T06:49:46Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Assign() is slow on certain devices</title>
      <link>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/428638#M67794</link>
      <description>&lt;P&gt;Not sure. I sent a note about this thread to JMP; you might want to talk to tech support as well.&lt;/P&gt;&lt;P&gt;My guess (and that's all it is!) is that JMP will need to change something to get the performance back on the new hardware. With only 4 virtual CPUs, I can't see the same thing you see.&lt;/P&gt;</description>
      <pubDate>Wed, 20 Oct 2021 13:34:51 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/428638#M67794</guid>
      <dc:creator>Craige_Hales</dc:creator>
      <dc:date>2021-10-20T13:34:51Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Assign() is slow on certain devices</title>
      <link>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/428671#M67796</link>
      <description>&lt;P&gt;I also limited the number of cores in the task manager that are available to JMP to 2, 4 and 8 on the new workstation. The parallel version still remains slower than the sequential one. My guess is that JMP is using outdated libraries in the background that runs bad on new hardware architectures.&lt;/P&gt;&lt;P&gt;Thanks Craige, I will contact tech support about it.&lt;/P&gt;</description>
      <pubDate>Wed, 20 Oct 2021 14:01:29 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/428671#M67796</guid>
      <dc:creator>Robbb</dc:creator>
      <dc:date>2021-10-20T14:01:29Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Assign() is slow on certain devices</title>
      <link>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/428784#M67816</link>
      <description>&lt;P&gt;For my 3.6GHz 4-core machine and N=100k:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am getting a 1.4X speedup using the parallel code over sequential (12.8s parallel vs 17.8s sequential). This isn't as good as the 2.7X speedup Craige was seeing and but it is better than the slowdown behavior you were seeing on the workstations. However, I wanted to see if I could get a little more performance out of this so I made some edits.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I removed the function call overhead (matrix argument copies, etc) by using expressions instead. This got me up to a 2.5X speedup (4.5s parallel vs 11.3s sequential) and a good bit faster than the original. And finally, I tried rearranging the loops a bit and got the sequential version down to 4s. This is faster than the parallel version but the rearranging is not as easy to do with Parallel Assign. I tested some different N and these patterns appeared to hold but I didn't do a full sweep like in your table above. Find the code attached.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Parallel: 12.78&lt;BR /&gt;Sequential: 17.80&lt;BR /&gt;Parallel_Expr: 4.50&lt;BR /&gt;Sequential_Expr: 11.27&lt;BR /&gt;Sequential_Expr_Opt: 3.98&lt;/P&gt;</description>
      <pubDate>Wed, 20 Oct 2021 17:28:16 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/428784#M67816</guid>
      <dc:creator>EvanMcCorkle</dc:creator>
      <dc:date>2021-10-20T17:28:16Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Assign() is slow on certain devices</title>
      <link>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/428892#M67835</link>
      <description>&lt;P&gt;Oh, wow thanks! Running your script on my newer Workstation I get&lt;BR /&gt;Parallel: 37.0833333333139&lt;BR /&gt;Sequential: 19.7166666666453&lt;BR /&gt;Parallel_Expr: 6.93333333331975&lt;BR /&gt;Sequential_Expr: 12.5333333333256&lt;BR /&gt;Sequential_Expr_Opt: 4.54999999998836&lt;/P&gt;&lt;P&gt;Let us not regard the&amp;nbsp;Sequential_Expr_Opt one because it's an unfair comparison. :)&lt;/img&gt;&lt;/P&gt;&lt;P&gt;You just replaced the function by an expression and I get a speedup of approximately 1.5 for the sequential and more than 5 (!!!) for the parallel version? That's a great workaround. So what do I learn from this? Never use functions in JSL? That's a bit&amp;nbsp;unpleasant because functions make code more readable and easier and safer to use and modify for others. However, I think there is still a problem somewhere behind the scenes becuase my original parallel version still takes twice the time of the original sequential one and this is not the case on Craige's virtual machine.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Update: Here is the full scan on the new Workstation:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Robbb_1-1634800441779.png" style="width: 999px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/36879i66541E4C61AADC12/image-size/large?v=v2&amp;amp;px=999" role="button" title="Robbb_1-1634800441779.png" alt="Robbb_1-1634800441779.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Robbb_3-1634800519928.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/36881i757A74C4D43D1F1E/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Robbb_3-1634800519928.png" alt="Robbb_3-1634800519928.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Oct 2021 07:25:12 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/428892#M67835</guid>
      <dc:creator>Robbb</dc:creator>
      <dc:date>2021-10-21T07:25:12Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Assign() is slow on certain devices</title>
      <link>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/432449#M68217</link>
      <description>&lt;P&gt;I followed Craiges advice and contacted tech support two weeks ago. After some queries about my PCs I got the response today that developers have been involved to investigate the behavior and fix problems in a future JMP version.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Nevertheless, thanks again Evan for speeding up this specific script.&lt;/P&gt;</description>
      <pubDate>Wed, 03 Nov 2021 10:34:25 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/432449#M68217</guid>
      <dc:creator>Robbb</dc:creator>
      <dc:date>2021-11-03T10:34:25Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Assign() is slow on certain devices</title>
      <link>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/432712#M68244</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14411"&gt;@Robbb&lt;/a&gt;, two thoughts:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Programming for speed&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The goal of your code can have a big effect on how you write it.&amp;nbsp; For the vast majority of the scripts the additional time it takes to call a function or copy a symbol doesn't matter, so yes you should use functions and make the code easy to interpret.&amp;nbsp; On the other hand if you are working a project that will is large and will be repeated enough times that you care how long it takes, then yes you might want to start trading some niceties for raw performance.&amp;nbsp; I encourage you to only spend time optimizing things that actually matter though.&amp;nbsp; Don't spend an extra hour coding something now, and then have to spend an extra hour figuring out what you did after a year because you made it more complex trying to speed it up, just to save users an extra 20 seconds once per day.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Parallel trade off&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;When deciding whether to execute in parallel you need to balance the overhead of setting up that 'child' thread with the work it is going to do.&amp;nbsp; Imagine that you were going to run parallel jobs by opening another copy of JMP, opening a data table, and clicking run. If you leave it running for an hour then great, you will save a bunch of time over just letting one script do everything, but if that script is going to run for 20 seconds then you probably spent more time starting it then you saved.&amp;nbsp; Yes the overhead here is a lot smaller, but copying symbols and allocating memory does take time.&amp;nbsp; Make sure the work your script will do after the environment is set up is substantial.&amp;nbsp; One way you can help make this happens is to break your loop up into just 4 parts and have each thread work on a quarter of the values at once.&amp;nbsp; So, break your list into four parts, each with a quarter of the rows, and then have your script sequentially process each sub list. That way you reduce the time spent setting up child threads from n row() times to 4.&lt;/P&gt;</description>
      <pubDate>Wed, 03 Nov 2021 17:36:15 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/432712#M68244</guid>
      <dc:creator>ih</dc:creator>
      <dc:date>2021-11-03T17:36:15Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Assign() is slow on certain devices</title>
      <link>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/432893#M68260</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/6657"&gt;@ih&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;agree.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The overhead of setting up a child does not matter much in my case so I didn't spend much time for making this as effective as possible. This script is not meant to just run a few minutes. Before I started this topic I did exactly what you suggested. I broke my dataset down into 8 parts and it was finished within 0.5 days. For interest I tried Evan's "Sequential_Expr_Opt" version later, too, and it took something between 1.5 and 4 days to finish on my dataset (started it thursday morning, wasn't finished friday afternoon but monday morning).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This thread was to show that there is something wrong behind the scenes in general. In the past I noticed bad parallel performance of JMP every now and then and it bothered me. I like JMP and I like trying things with it what other people say can't be done with JMP. And I am more than happy that developers are looking into it.&lt;/P&gt;&lt;P&gt;However I must say there are better tools to deal with really large data sets than JMP. At least at the moment. ;)&lt;/img&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 06:56:15 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/432893#M68260</guid>
      <dc:creator>Robbb</dc:creator>
      <dc:date>2021-11-04T06:56:15Z</dc:date>
    </item>
    <item>
      <title>Re: Parallel Assign() is slow on certain devices</title>
      <link>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/935255#M109101</link>
      <description>&lt;P&gt;Hi everyone,&lt;/P&gt;
&lt;P&gt;Great news! Now after 3 years I ran all 5 parallel benchmarks (thanks again&amp;nbsp;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/11257"&gt;@EvanMcCorkle&lt;/a&gt;&amp;nbsp;) again on one of the PCs that I already had at that time using JMP 19.0.4 this time. The parallel performance improved a lot compared to JMP 16 when using expressions. JMP 19 is approx 5 times faster which is similar to the "Sequential_Expr_Opt" benchmark with both JMP versions. Still functions should be avoided when using Parallel Assign(), even though the performance got a little better.&lt;/P&gt;
&lt;P&gt;Cheers&lt;BR /&gt;Rob&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-03-13 144239.png" style="width: 808px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/95840iA1E56B97E97BED8D/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2026-03-13 144239.png" alt="Screenshot 2026-03-13 144239.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 13 Mar 2026 14:52:52 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Parallel-Assign-is-slow-on-certain-devices/m-p/935255#M109101</guid>
      <dc:creator>Robbb</dc:creator>
      <dc:date>2026-03-13T14:52:52Z</dc:date>
    </item>
  </channel>
</rss>

