Jeremy D. Frens

dblp:01/330 · DBLP profile ↗
← Back
6ranked-venue papers
4as first author
0since 2021 · last 2006
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 3 · 2 first-authorHuman-computer interaction and ubiquitous computing · 3 · 2 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
3 papers
High-performance computing · 52% Memory systems · 45% Parallel and multicore computing · 3%

Topics — the 8 heaviest of 9, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Memory systems › cache
cache-oblivious algorithms
0.122003
Factorization with morton-ordered quadtree matrices for memory re-use and parallelism · PPoPP 2003
Auto-blocking Matrix-Multiplication or Tracking BLAS3 Performance with Source Code · PPoPP 1997
High-performance computing › numerical linear algebra
dense linear algebra
0.122003
Factorization with morton-ordered quadtree matrices for memory re-use and parallelism · PPoPP 2003
Auto-blocking Matrix-Multiplication or Tracking BLAS3 Performance with Source Code · PPoPP 1997
High-performance computing › numerical linear algebra
matrix factorization
0.012003
Factorization with morton-ordered quadtree matrices for memory re-use and parallelism · PPoPP 2003
High-performance computing › numerical linear algebra › matrix factorization
QR factorization
0.012003
Factorization with morton-ordered quadtree matrices for memory re-use and parallelism · PPoPP 2003
Memory systems › data locality
cache locality
0.012001
Language support for Morton-order matrices · PPoPP 2001
Memory systems
memory hierarchy
0.012001
Language support for Morton-order matrices · PPoPP 2001
High-performance computing › numerical linear algebra
matrix multiplication
0.011997
Auto-blocking Matrix-Multiplication or Tracking BLAS3 Performance with Source Code · PPoPP 1997
Memory systems › memory hierarchy
memory hierarchy optimization
0.011997
Auto-blocking Matrix-Multiplication or Tracking BLAS3 Performance with Source Code · PPoPP 1997

Methods — techniques the papers use, named apart from their topics

morton-order storage · 0.0givens rotations · 0.0divide-and-conquer · 0.0space-filling curves · 0.0quaternary trees · 0.0recursive algorithm · 0.0loop unrolling · 0.0
YearPublicationVenuePosition
2006 Fifteen compilers in fifteen days
abstract
Traditional approaches to semester-long projects in compiler courses force students to implement the early stages of a compiler in depth; since many students fall behind, they have little opportunity to implement the back end. Consequently, students have a deep knowledge of early material and no knowledge of latter material. We propose an approach based on incremental development and test-driven development; this approach solves the emphasis problem, provides experience with useful tools, and allows for such a course to be taught in a three or four weeks.
Jeremy D. Frens, Andrew Meneely
SIGCSE1
2004 Taming the tiger: teaching the next version of Java
abstract
The next version of the Java language (Software Development Kit 1.5) will include generics, an enhanced for loop, boxing and unboxing of primitive types, typesafe enumerated types, static import, variable arguments, and metadata. This new version is a significant change of the language itself, adding many features that will impact the use of Java in computer science curricula. Fortunately, this new version provides several features that instructors have wanted in the language from its beginning.
Jeremy D. Frens
SIGCSE1
2003 Factorization with morton-ordered quadtree matrices for memory re-use and parallelism
abstract
Quadtree matrices using Morton-order storage provide natural blocking on every level of a memory hierarchy. Writing the natural recursive algorithms to take advantage of this blocking results in code that honors the memory hierarchy without the need for transforming the code. Furthermore, the divide-and-conquer algorithm breaks problems down into independent computations. These independent computations can be dispatched in parallel for straightforward parallel processing.Proof-of-concept is given by an algorithm for QR factorization based on Givens rotations for quadtree matrices in Morton-order storage. The algorithms deliver positive results, competing with and even beating the LAPACK equivalent.
Jeremy D. Frens, David S. Wise
PPoPP1
2003 Object centered design for Java: teaching OOD in CS-1
abstract
Object-centered design (OCD) is a methodology developed to help novice C++ programmers learn to design software. By adapting OCD for use with Java, we can reduce the number of phases in OCD from five to three, and introduce object-oriented design (OOD) in CS-1 instead of CS-2.
Joel Adams 0001, Jeremy D. Frens
SIGCSE2
2001 Language support for Morton-order matrices
abstract
The uniform representation of 2-dimensional arrays serially in Morton order (or {\eee} order) supports both their iterative scan with cartesian indices and their divide-and-conquer manipulation as quaternary trees. This data structure is important because it relaxes serious problems of locality and latency, and the tree helps to schedule multi-processing. Results here show how it facilitates algorithms that avoid cache misses and page faults at all levels in hierarchical memory, independently of a specific runtime environment.
David S. Wise, Jeremy D. Frens, Yuhong Gu, Gregory A. Alexander
PPoPP2
1997 Auto-blocking Matrix-Multiplication or Tracking BLAS3 Performance with Source Code
abstract
An elementary, machine-independent, recursive algorithm for matrix multiplication C+=A*B provides implicit blocking at every level of the memory hierarchy and tests out faster than classically optimrd code, tracking hand-coded BLAS3 routines. Proof of concept is demonstrated by racing the in-place algorithm against manufacturer's hand-tuned BLAS3 routines; it can win.The recursive code bifurcates naturally at the top level into independent block-oriented processes, that each writes to a disjoint and contiguous region of memory. Experience has shown that the indexing vastly improves the patterns of memory access at all levels of the memory hierarchy, independently of the sizes of caches or pages and without ad hoc programming. It also exposed a weakness in SGI's C compilers that merrily unroll loops for the super-scalar R8000 processor, but do not analogously unfold the base cases of the most elementary recursions. Such deficiencies might deter future programmers from using this rich class of recursive algorithms.
Jeremy D. Frens, David S. Wise
PPoPP1