Live data from Hacker News

Special Linear Systems and Cholesky Factorization for Programmers

dragan.rocks

11–20 of 23 posts

Re: Special Linear Systems and Cholesky Factorization for Programmers

#11
post #3

This is awesome. I can't wait until the future when we'll get more informal blog posts from programmers about even more abstract subjects which thus far are dominated in exposition by academics (who very rarely innovate in how they present the material). The day I see a good engineer-style post on HN about sheaf theory or algebraic geometry will be amazing.

personally I'm waiting for an engineer-style post on IUT :)

Re: Special Linear Systems and Cholesky Factorization for Programmers

#12

Now the real tough question is how do you pronounce Cholesky? I had a Polish math prof who was mad at the American pronunciation, but Cholesky was actually French, so should we actually pronounce it in the francophone style?

One can avoid this problem by calling it the LL^T-decomposition.

Re: Special Linear Systems and Cholesky Factorization for Programmers

#13
post #7
post #6

Since LAPACK is an excellent library for these matrix functions, why not use it, and translate it to Clojure instead of reinventing the wheel? (There's also a translator from Fortran to C).

Because JVM does not have access to the hardware features needed to execute this efficiently. Also, the power of lapack comes from existing highly tuned implementations , not the interface itself. Reference BLAS and LAPACK are actually quite slow.

In fact, you can access the hardware through native calls via JNI (or JNA). Or course, then, you have to embedded multiplatform libraries and manage the associated issues. Also, the OpenBLAS implementation is very well optimized for several Intel and AMD processors (you can compile it so that it autodetects which one you're using). It can even reach the efficiency of the Intel's MKL implementation in mono-threaded mode.

Re: Special Linear Systems and Cholesky Factorization for Programmers

#14
post #13
post #7

Earlier quoted context omitted.

Because JVM does not have access to the hardware features needed to execute this efficiently. Also, the power of lapack comes from existing highly tuned implementations , not the interface itself. Reference BLAS and LAPACK are actually quite slow.

In fact, you can access the hardware through native calls via JNI (or JNA). Or course, then, you have to embedded multiplatform libraries and manage the associated issues. Also, the OpenBLAS implementation is very well optimized for several Intel and AMD processors (you can compile it so that it autodetects which one you're using). It can even reach the efficiency of the Intel's MKL implementation in mono-threaded mo…

We don't even have to guess, since that's exactly what Neanderthal does. Also, I micro-benchmarked lots of options and have yet to find one that fills similar use case that is faster than Neanderhtal+MKL on the CPU, regardless of the JNI overhead (minus the obvious direct use of MKL, but that is much more low-level code). Also, most higher level libraries have considerable overhead. Neanderthal's overhead is tiny.

OpenBLAS's huge drawback is that it only supports BLAS without LAPACK, sparse, tensors, FFT etc.

Anyway, regarding the OP's comment, I guess that they meant to suggest implementing all that in pure Java, not Java + FFI, since then the native code has to be written in non-Java.

Re: Special Linear Systems and Cholesky Factorization for Programmers

#15

Now the real tough question is how do you pronounce Cholesky? I had a Polish math prof who was mad at the American pronunciation, but Cholesky was actually French, so should we actually pronounce it in the francophone style?

The sophisticated linear algebra practitioners I learned from all said "ko-LESS-key". People who ask me naive questions about the decomposition ("wait, is it upper triangular or lower triangular?") say "choe-LESS-key", or "CHOLES-key", or mutter something even farther off the mark.

Thus, I'm sticking with ko-LESS-key.

Also seeking opinions on: Weiner (as in the process), and Jensen (as in the inequality), Fourier (as in the series).

Re: Special Linear Systems and Cholesky Factorization for Programmers

#17
post #7
post #6

Since LAPACK is an excellent library for these matrix functions, why not use it, and translate it to Clojure instead of reinventing the wheel? (There's also a translator from Fortran to C).

Because JVM does not have access to the hardware features needed to execute this efficiently. Also, the power of lapack comes from existing highly tuned implementations , not the interface itself. Reference BLAS and LAPACK are actually quite slow.

What about correctness? Numerical linear algebra is very difficult and bugs are hard to test for and weed out.

Re: Special Linear Systems and Cholesky Factorization for Programmers

#18
post #7

Earlier quoted context omitted.

Because JVM does not have access to the hardware features needed to execute this efficiently. Also, the power of lapack comes from existing highly tuned implementations , not the interface itself. Reference BLAS and LAPACK are actually quite slow.

What about correctness? Numerical linear algebra is very difficult and bugs are hard to test for and weed out.

I guess when it comes to testing, Intel has more resources to do that than most other folks. That's one of the reasons why I use MKL despite it not being open source (but it is free as in free beer).

Re: Special Linear Systems and Cholesky Factorization for Programmers

#19
post #15

Now the real tough question is how do you pronounce Cholesky? I had a Polish math prof who was mad at the American pronunciation, but Cholesky was actually French, so should we actually pronounce it in the francophone style?

The sophisticated linear algebra practitioners I learned from all said "ko-LESS-key". People who ask me naive questions about the decomposition ("wait, is it upper triangular or lower triangular?") say "choe-LESS-key", or "CHOLES-key", or mutter something even farther off the mark. Thus, I'm sticking with ko-LESS-key. Also seeking opinions on: Weiner (as in the process), and Jensen (as in the inequality), Fourier (as…

Fourier

I've always heard this pronounced like "for-e-ay" (or "for-e-eh" where the last part is the Canadian "eh?").

Re: Special Linear Systems and Cholesky Factorization for Programmers

#20
post #15

Earlier quoted context omitted.

The sophisticated linear algebra practitioners I learned from all said "ko-LESS-key". People who ask me naive questions about the decomposition ("wait, is it upper triangular or lower triangular?") say "choe-LESS-key", or "CHOLES-key", or mutter something even farther off the mark. Thus, I'm sticking with ko-LESS-key. Also seeking opinions on: Weiner (as in the process), and Jensen (as in the inequality), Fourier (as…

Fourier I've always heard this pronounced like "for-e-ay" (or "for-e-eh" where the last part is the Canadian "eh?").

I'm with you. You also hear "FOUR-e-err", and my favorite EE teacher said "FUR-ee-err", indistinguishable from the word for a fur coat-maker, which always produced a smile. (But, he's a fellow of the IEEE and I'm not, so who's laughing now?)

I say "WEE-ner" (since he was American, but, open to correction on that one) and "YEN-sen" (that's how I was taught).

Post reply on HN