Jeff Cash Jeff Cash

Research Interests:

General research interests: numerical analysis
Particular research interests: numerical solution of ODEs Boundary value problems and initial value problems. Geometric Integration.
Click here for the book Solving Differential Equations in R by Karline Soetaert, Jeff Cash and Francesca Mazzia.
Click here to see a list, containing our book, of notable computing books and articles of 2012.
Click here for the BVP software page.
Click here for the IVP software page.
Click here for IVP software – BSD licenced.
Click here for the geometric integration software page. Contains MATLAB and Fortran 90 codes.
Click here for MATLAB Software for Initial Value Problems.
Click here for the Non-Stiff Equations software page. This gives the Cash-Karp Runge-Kutta code in Fortran, Matlab and C.
Click here for the OdePkg software.
Click here for the Fortran 95 version of the IVP software MEBDFI.f. High Performance Programming for Intel Xeon Phi Coprocessors | Intel Xeon Phi Coprocessor High Performance Programming High Performance Programming for Intel Xeon Phi Coprocessors | Intel Xeon Phi Coprocessor High Performance Programming
The world’s fastest computer, for the third time in a row on biannual Top500 list, uses Intel Xeon Phi coprocessors to make it possible. Intel Xeon Phi coprocessors are used in the #1, #7, #15, #39, #50, #51, #65, #92, #101, #102, #103, #134, #157, #186, #235, #251 and #451 systems. EXPLICIT VECTORIZATION – A TALK ABOUT THE NEED FOR THIS, GIVEN AT SGIUG ON APRIL 30, 2014

cuda – Converting Octave to Use CuBLAS – Stack Overflow

cuda – Converting Octave to Use CuBLAS – Stack Overflow
I was able to produce a compiled executable using the information supplied. It’s a horrible hack, but it works. The process looks like this: First produce an object file for fortran_thunking.c sudo /usr/local/cuda-5.0/bin/nvcc -O3 -c -DCUBLAS_GFORTRAN fortran_thunking.c Then move that object file to the src subdirectory in octave cp /usr/local/cuda-5.0/src/fortran_thunking.o ./octave/src run make. The compile will fail on the last step. Change to the src directory. cd src Then execute the failing final line with the addition of ./fortran_thunking.o -lcudart -lcublas just after octave-main.o. This produces the following command g++ -I/usr/include/freetype2 -Wall -W -Wshadow -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -I/usr/local/cuda/include -o .libs/octave octave-main.o ./fortran_thunking.o -lcudart -lcublas -L/usr/local/cuda/lib64 ../libgui/.libs/ ../libinterp/.libs/ ../liboctave/.libs/

High-Precision Software Directory

High-Precision Software Directory
This web site (see software package links below) contains the LBNL double-double precision, quad-double precision and arbitrary precision (also termed "multiprecision" or "multiple precision") software, which was written over a period of several years by David H. Bailey (LBNL), Yozo Hida (U.C. Berkeley), Xiaoye S. Li (LBNL) and Brandon Thompson (formerly of U.C. Berkeley, now at Cadence). Some additional application programs were provided by Karthik Jeyabalan (formerly at LBNL, now at Cornell), and some revised versions have been provided by Alex Kaiser (U.C. Berkeley). Here are links to some of the authors’ websites:

Dongarra+Hinds: Unrolling Loops in FORTRAN

Dongarra+Hinds: Unrolling Loops in FORTRAN
The technique of ‘unrolling’ to improve the performance of short program loops withoutresorting to assembly language coding is discussed. A comparison of the benefits of loop

‘unrolling‘ on a variety of computers using an assortment of FORTRAN compilers is


KEY WORDS Unrolled loops FORTRAN Loop efficiency Loop doubling


It is frequently observed that the bulk of the central processor time for a program is

localized in 3 per cent of the source code.6 Often the critical code from the timing perspective

consists of one (or a few) short inner loops typified, for instance, by the scalar product of

two vectors. A simple technique for the optimization of such loops, with consequent

improvement in overall execution time, should then be most welcome. ‘Loop unrolling’ (a

generalization of ‘loop d~ubling’),~ applied selectively to time-consuming loops, is just

such a technique.

Dennis M. Ritchie: C History

Dennis M. Ritchie: C History

Dennis M. Ritchie
Bell Labs/Lucent Technologies

This paper is about the development of the C programming language, the influences on it, and the conditions under which it was created. For the sake of brevity, I omit full descriptions of C itself, its parent B [Johnson 73] and its grandparent BCPL [Richards 79], and instead concentrate on characteristic elements of each language and how they evolved.C came into being in the years 1969-1973, in parallel with the early development of the Unix operating system; the most creative period occurred during 1972. Another spate of changes peaked between 1977 and 1979, when portability of the Unix system was being demonstrated. In the middle of this second period, the first widely available description of the language appeared: The C Programming Language, often called the `white book’ or `K&R;’ [Kernighan 78]. Finally, in the middle 1980s, the language was officially standardized by the ANSI X3J11 committee, which made further changes. Until the early 1980s, although compilers existed for a variety of machine architectures and operating systems, the language was almost exclusively associated with Unix;

Thus Steve Johnson began to work on pcc, a C compiler intended to be easy to retarget to new machines [Johnson 78b], while he, Thompson, and I began to move the Unix system itself to the Interdata 8/32 computer.

During the 1980s the use of the C language spread widely, and compilers became available on nearly every machine architecture and operating system; in particular it became popular as a programming tool for personal computers, both for manufacturers of commercial software for these machines, and for end-users interested in programming. At the start of the decade, nearly every compiler was based on Johnson’s pcc; by 1985 there were many independently-produced compiler products.

As should be clear from the history above, C evolved from typeless languages.

It is worth summarizing compactly the roles of the direct contributors to today’s C language. Ken Thompson created the B language in 1969-70; it was derived directly from Martin Richards’s BCPL. Dennis Ritchie turned B into C during 1971-73, keeping most of B’s syntax while adding types and many other changes, and writing the first compiler. Ritchie, Alan Snyder, Steven C. Johnson, Michael Lesk, and Thompson contributed language ideas during 1972-1977, and Johnson’s portable compiler remains widely used. During this period, the collection of library routines grew considerably, thanks to these people and many others at Bell Laboratories. In 1978, Brian Kernighan and Ritchie wrote the book that became the language definition for several years. Beginning in 1983, the ANSI X3J11 committee standardized the language. Especially notable in keeping its efforts on track were its officers Jim Brodie, Tom Plum, and P. J. Plauger, and the successive draft redactors, Larry Rosler and Dave Prosser.

Firebird – The RDBMS that’s going where you’re going

Firebird – The RDBMS that’s going where you’re going
Firebird is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, and a variety of Unix platforms. Firebird offers excellent concurrency, high performance, and powerful language support for stored procedures and triggers. It has been used in production systems, under a variety of names, since 1981.

The Firebird Project is a commercially independent project of C and C++ programmers, technical advisors and supporters developing and enhancing a multi-platform relational database management system based on the source code released by Inprise Corp (now known as Borland Software Corp) on 25 July, 2000.