@vince_faller: to answer your original question my personal recommendation to optimize one copy of JMP (on windows) is to get the fastest 4 or 6 processors you can.
@txnelson: I should have been more clear, JMP often uses a fraction of all of the cores, but it does not use them all to capacity. That leads me to believe that JMP is running with fewer than 8 or 12 actual 'worker' threads, and the processing is moved from core to core by the operating system.
This property of JMP bothers me, thus I spent some time testing my theory that JMP only uses a fraction of the total cores. Here are results when concurrently running 1, 2, 3, or 4 copies of the script below each in their own instance of JMP.
One Instance
19-21 seconds
![CPU 1.PNG CPU 1.PNG](https://community.jmp.com/t5/image/serverpage/image-id/8776i6234B532DD7F25FB/image-size/large?v=v2&px=999)
Two Instances
26-28 seconds
![CPU 2.PNG CPU 2.PNG](https://community.jmp.com/t5/image/serverpage/image-id/8777i000687DB2FAC07EA/image-size/large?v=v2&px=999)
Three Instances
34-39 seconds
![CPU 3.PNG CPU 3.PNG](https://community.jmp.com/t5/image/serverpage/image-id/8778iC25B445C7B85F3EC/image-size/large?v=v2&px=999)
Four Instances
43-47 seconds
![cpu 4.PNG cpu 4.PNG](https://community.jmp.com/t5/image/serverpage/image-id/8779i84B5E2F3FB676973/image-size/large?v=v2&px=999)
The time to run two copies at once is certainly less than the time to run one twice:
![cpu times.png cpu times.png](https://community.jmp.com/t5/image/serverpage/image-id/8780i1B4BE85AD845338D/image-size/large?v=v2&px=999)
Names default to here( 1);
dt = Open( "$Sample_data/probe.jmp", Private );
Random reset(1);
valcol = dt << New Column( "Validation",
Numeric, "Nominal", Set formula( Random Category( 0.75, 0, 0.25, 1, 2 ) ),
Value Labels( {0 = "Training", 1 = "Validation", 2 = "Test"} ), Use Value Labels( 1 )
);
dt << Run Formulas; valcol << Delete Formula;
timeboot = Function( {},
start = Today();
xvars = Substitute(Char((dt << Get Column Names)[8::394]), "{", "", "}", "");
Eval( Parse(
"rf = dt << Bootstrap Forest(
Y( :Process ),
X( " || xvars || " ),
Validation Portion( :Validation ),
Method( \!"Bootstrap Forest\!" ),
Portion Bootstrap( 1 ),
Number Terms( 30 ),
Number Trees( 2000 ),
Early Stopping( 0 ),
Go
);"
));
rf << Close Window;
end = Today();
return(end - start);
);
win = New window("Time Bootstrap",
V List Box(
r = text box( "", << Set Width( 100 ) ),
H List Box(
Button Box( "Start", r << Set Text( Char( timeboot() ) || " seconds" ) ),
Button Box( "Close", dt << Close Window; win << Close Window; )
)
)
);