Multi-core is pretty easy to do at a "coarse-grained" level using J. I gave a pretty complete example in my talk at the J Conference last year: http://www.jsoftware.com/jwiki/Community/Conference2012/Talks/ParallelSimulationInJ.
On Thu, May 30, 2013 at 10:09 AM, Roger Hui <[email protected]>wrote: > Functions for which there is a function in the C library will invoke the C > library function: sin, cos, exp, log, etc., usually with some surrounding C > code to implement J requirements. The monad o. (pi times) uses > "*zv++=pi**wv++;" where zv is a pointer to the result and wv is a pointer > to the argument and pi is a "double" scalar with the appropriate value and > is, I expect, as fast as what you can do in C. > > As well, Appendix B of the > dictionary<http://www.jsoftware.com/help/dictionary/special.htm>and > the links in that page give you an idea of the optimizations that have > been worked on. In particular, functions with "integrated rank support" > (listed under f"r), including the so-called scalar functions (+ - * % >. <. > etc.) are quite fast and should be competitive with any other language. > > There is as yet no exploitation of multicore. > > > > On Thu, May 30, 2013 at 5:34 AM, Robert Herman <[email protected]> > wrote: > > > Yes, different tools do make you see the same problem from different > > angles. I am trying to repeat my exercises in J also in Mathematica and > > vice-versa. Some colleagues are saying I should learn F#, however, I > find J > > to be more mind-opening in the sense that I have dabbled with some > > functional languages and you can do functional in J too. > > My speed question is not simply a general benchmark question. I am > curious > > on how things work beneath the IDE and the J scripts. For instance, how > pi > > or 'o. 1' is implemented. Is it calling a C routine that uses a standard > > way of calculating pi? Or Sin (1 o. 1r3p1 = 0.866)? I am not a HFT > looking > > to shave calculation times by milliseconds (nanoseconds?), but when I > > dabbled with the programming language Oz, some calculations took minutes! > > Thanks again. > > > > Rob > > > > > > On Wed, May 29, 2013 at 8:34 PM, Raul Miller <[email protected]> > > wrote: > > > > > I do not fully understand your questions, but if I were learning math, > > > I would try to keep using both tools. > > > > > > The issues, in my mind include perspective (different tools reveal > > > different aspects of issues) and accessibility (when you are learning > > > you will need to draw as many useful connections as you can). > > > > > > Put differently, on the one hand you have limited time to figure > > > things out and it takes time to express things in multiple ways, but > > > on the other hand it's the process of figuring out how to express > > > things in different ways that constitutes learning maths. > > > > > > That said, J doesn't inherently use libraries (other than the standard > > > C libraries) but can use things like LAPACK. It's not LAPACK support > > > is built into J but that the interpreter allows you to reference > > > arbitrary shared libraries (or DLLs on windows). [So, for example, > > > it's possible to have a J script which includes compiled C, finds and > > > runs a C compiler on it [assuming one is available], then links to the > > > result. This isn't implementation pattern particularly common though, > > > because using external libraries means that they can crash and take > > > down your J session with it. It's also possible to run such libraries > > > in an external program, of course - including a copy of your J > > > session.] > > > > > > Meanwhile, for speed... it is very difficult to make generally valid > > > statements here. Expect some things to be faster on one system and > > > others to be faster on another. Expect also that choices you make will > > > have disproportionate influences on speed. > > > > > > -- > > > Raul > > > > > > On Wed, May 29, 2013 at 1:39 AM, Robert Herman <[email protected]> > > > wrote: > > > > I am trying to evaluate J for doing mathematics vs. Mathematica. I > own > > > the > > > > Home edition of Mathematica. At the moment, I am trying to teach > myself > > > > higher maths with an eye towards completing my maths degree online. I > > > never > > > > finished my degree many moons ago. I like the notebook structure and > > > > multi-paradigm approach in Mathematica, but I am gravitating towards > > J's > > > > succinctness and analogy to learning it's symbols akin to > mathematics' > > > > symbols. Iverson's 'Notation as a Tool of Thought' really grabbed me. > > My > > > > latest curiosity about J, if I understand it correctly, is that J is > > > > provided as an executable for several platforms. That it was written > in > > > C. > > > > Now, does it implement standard c maths libraries optimized for speed > > and > > > > accuracy? How does the linux version compare to Mathematica in terms > of > > > > doing certain operations, say large arrays, for signal processing, > > from a > > > > time and numerical accuracy index? Where can I find a listing of the > > > > libraries it uses, in the source headers? Thank you. > > > > > > > > Rob > > > > > ---------------------------------------------------------------------- > > > > For information about J forums see > http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > -- Devon McCormick, CFA ^me^ at acm. org is my preferred e-mail ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
