JMP Performance vs. Other (Bigger) Tools -- When to use each?Re: JMP Performance vs. Other (Bigger) Tools -- When to use each?Jerry:
Here's how I respond to this question of "When to use JMP vs. SAS vs. R?". I usually ask several more probing questions first, such as:
1. 'Performance' can be evaluated in a variety of ways. Which 'performance' characteristics are most important...which are unimportant? You can end up with lots of discussion on this point alone...like the user interface (which in my mind isn't exactly performance oriented but it often comes up as part of this discussion.) Or response speed. Or a more binary can/can't do question? Like say if you end up in a 'Can JMP do this? type conversation...SAS will win if for no other reason the size of the potential analytics tool box is ginormous compared to JMP).
2. How important is ongoing technical support for the software as well as resources provided by the software's developer/manufacturer?
3. Are there hardware and IT deployment considerations that can influence choice of software deployment options?
4. What's the budget for 3. above and the software itself?
5. How important is the ability to dynamically interact with the data, the analysis reports/results, and the ability to share with others with and without the core application used to generate the results?
So by now the prospect/customer, is probably starting to think the whole "JMP vs. SAS vs. R" conversation is much more complex than strictly feature set comparison. Sure I'd like to own a Lamborghini...but I have a Toyota RAV 4 and Mustang convertible in my driveway because lots of other considerations went into Sharon's and my automotive purchase decision besides 'features' and 'performance'.
Re: JMP Performance vs. Other (Bigger) Tools -- When to use each?Hi Jerry,
I guess for general things there are others who can chime in. For Neural Nets in special I believe that as soon you come across someone who loves Neural Nets JMP is not the right tool to use. You are limited to one or two (Pro) layers. There is no way to change the training function. Just to name some popular ones:
Algorithm
|
|---|
| |
Levenberg-Marquardt
|
| |
Bayesian Regularization
|
|
BFGS Quasi-Newton
|
| |
Resilient Backpropagation
|
| |
Scaled Conjugate Gradient
|
| |
Conjugate Gradient with Powell/Beale Restarts
|
| |
Fletcher-Powell Conjugate Gradient
|
|
Polak-Ribiére Conjugate Gradient
|
|
One Step Secant
|
|
Variable Learning Rate Gradient Descent
|
|
Gradient Descent with Momentum
|
|
Gradient Descent
|
People like to tweak neural nets. We have some kind of manipulation capabilities like penalties, robust, layer structur, boosting. However in the NN world there are also different packages available for the transfer functions, like forwardpropagation or backpropagation.
Though for many situations what we provide is enough (and usually outbeats Excel-AddIns providing NN), people knowing NN will use other tools for that. This can be R, MATLAB or SAS (though this is way more expensive and therefore only a true option for SAS customers, usually no option for small to midsize companies (in my experience). May the usage of R from JSL can be a nice compromise for NN.
Regarding multithreading or even parallel or GPU computing I believe JMP will be at the end of the list comparing JMP, SAS, R, MATLAB. JMP provides multithreading for several algorithms. it does not provide parallel/GPU computing so far. The others need a machine with multiple cores or a dedicated Distributing computing machine (if not GPU on the same machine). A side note: Multithreading is not disributed/parallel/GPU computing. The latter can also take linear algebra into account and split large matrix multiplications into several calculations on a seperate unit and transfers back the end result.
So everything in image detection, monte-carlo simulations, linear algebra, complex (global) optimization routines, .. are good for those. (Of course gaming as well
)
I think genReg has made a big step forward within the past years also regarding performance. So this might be one where you can point to using JMP (Pro). Also Bootstrap Forest is quite fast.
Depending of the machine, RAM on the one side but also how many cores are sharing the RAM, what else is occupied by the system, what is the system working on in the back, how long is the system already running, how is the memory used, all can have impact on the performance regardless the size of the file.
I'm not sure but may some others know that. I sometimes have the impression JMP is trying not to allocate the memory in advance for the full matrix/vector, in case it is iteratively adding values to a matrix/vector. This could end into memory issues as after a while the initial memory location is to small and the adress has to change to a larger place. Packing the spreaded memory bits together can free up memory and therefore boost performance. Might be a good practice to do that before running a big analysis. Any experiences on that available?
Re: JMP Performance vs. Other (Bigger) Tools -- When to use each?Not sure why I couldn't post to the original topic, but here's what I'm after.
I have a customer that asked the question: How does JMP performance compare to other larger tools for various analyses?
What he's looking for is guidelines for when to use JMP vs. when to use SAS and/or R (both of which he has access to). Obviously there are problems that are too big for JMP to handle, so we would turn to R. Also, I suspect there are some problems that JMP is really good at (e.g. linear regression), but maybe not so good performance-wise for other tasks (e.g. neural nets??), where SAS might take advantage of additional CPU or GPU cores on bigger machines than JMP can handle.
I'm not sure how to answer this question, so I thought I'd get a conversation started here. The answer may be "If it fits in JMP on your PC, then use JMP, otherwise use SAS." Or you may have other thoughts based on your experience.
Thanks in advance for any guidance you can provide!