Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

John Greiner

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

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

Software engineering, systems software and programming languages · 4 · 3 first-authorSystems, architecture and hardware · 1 · 1 first-authorHuman-computer interaction and ubiquitous computing · 1

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
2 papers
Parallel and multicore computing · 90% Performance modeling and evaluation · 10%
Theoretical computer science
1 paper
Algorithms and data structures · 100%

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

TopicWeightPapersLastEvidence papers
Parallel and multicore computing › parallel computing
parallel implementation
0.021999
A Provably Time-Efficient Parallel Implementation of Full Speculation · ACM Trans. Program. Lang. Syst. 1999
A Provably Time-Efficient Parallel Implementation of Full Speculation · POPL 1996
Parallel and multicore computing
parallel programming models
0.021999
A Provably Time-Efficient Parallel Implementation of Full Speculation · ACM Trans. Program. Lang. Syst. 1999
A Provably Time-Efficient Parallel Implementation of Full Speculation · POPL 1996
Parallel and multicore computing
speculative computation
0.021999
A Provably Time-Efficient Parallel Implementation of Full Speculation · ACM Trans. Program. Lang. Syst. 1999
A Provably Time-Efficient Parallel Implementation of Full Speculation · POPL 1996
Performance modeling and evaluation
cost modeling
0.011996
A Provably Time-Efficient Parallel Implementation of Full Speculation · POPL 1996
Parallel and multicore computing › parallel programming models
futures
0.011996
A Provably Time-Efficient Parallel Implementation of Full Speculation · POPL 1996
Algorithms and data structures
parallel algorithms
0.011999
A Provably Time-Efficient Parallel Implementation of Full Speculation · ACM Trans. Program. Lang. Syst. 1999

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

cost semantics · 0.0PRAM model · 0.0DAG analysis · 0.0profiling semantics · 0.0hypercube · 0.0butterfly network · 0.0PRAM · 0.0
YearPublicationVenuePosition
2014 Facilitating human interaction in an online programming course
abstract
Human/human interaction is a critical component of learning in many domains including introductory computer programming. For on-campus courses, lectures and problem sessions provide opportunities for students to interact with the instructor(s) and their peers. For online courses, opportunities for human/human interaction are more limited and usually correspond to activities like forum postings and online study groups. For online programming courses, the situation is potentially even worse since many of the computational tools designed to facilitate learning to program, such as unit testing, emphasize human/machine interaction and can be frustrating for beginning students. In this paper, the authors describe their experience in teaching an introductory programming MOOC. The guiding philosophy for this course is that learning to program should be a social experience that emphasizes human/human interaction, not human/machine interaction. Both the tools and assessment methods deployed in this course were chosen to help achieve this goal. In particular, this paper discusses a key tool that supports human/human interaction and several aspects of the course that contributed to its success.
Joe Warren, Scott Rixner, John Greiner
SIGCSE3
1999 A Provably Time-Efficient Parallel Implementation of Full Speculation
abstract
Speculative evaluation, including leniency and futures, is often used to produce high degrees of parallelism. Understanding the performance characteristics of such evaluation, however, requires having a detailed understanding of the implementation. For example, the particular implementaion technique used to suspend and reactivate threads can have an asymptotic effect on performance. With the goal of giving the users some understanding of performance without requiring them to understand the implementation, we present a provable implementation bound for a language based on speculative evaluation. The idea is (1) to supply the users with a semantics for a language that defines abstract costs for measuring or analyzing the performance of computations, (2) to supply the users with a mapping of these costs onto runtimes on various machine models, and (3) to describe an implementation strategy of the language and prove that it meets these mappings. For this purpose we consider a simple language based on speculative evaluation. For every computation, the semantics of the language returns a directed acyclic graph (DAG) in which each node represents a unit of computation, and each edge represents a dependence. We then describe an implementation strategy of the language and show that any computation with w work (the number of nodes in the DAG) and d depth (the length of the longest path in the DAG) will run on a p -processor PRAM in O ( w / p + d log p ) time. The bounds are work efficient (within a constant factor of linear speedup) when there is sufficient parallelism, w / d ≥ p log p . These are the first time bounds we know of for languages with speculative evaluation. The main challenge is in parallelizing the necessary queuing operations on suspended threads.
John Greiner, Guy E. Blelloch
ACM Trans. Program. Lang. Syst.1
1996 A Provable Time and Space Efficient Implementation of NESL
abstract
In this paper we prove time and space bounds for the implementation of the programming language NESL on various parallel machine models. NESL is a sugared typed λ-calculus with a set of array primitives and an explicit parallel map over arrays. Our results extend previous work on provable implementation bounds for functional languages by considering space and by including arrays. For modeling the cost of NESL we augment a standard call-by-value operational semantics to return two cost measures: a DAG representing the sequential dependence in the computation, and a measure of the space taken by a sequential implementation. We show that a NESL program with w work (nodes in the DAG), d depth (levels in the DAG), and s sequential space can be implemented on a p processor butterfly network, hypercube, or CRCW PRAM using O(w/p + d log p) time and O(s + dp log p) reachable space.1 For programs with sufficient parallelism these bounds are optimal in that they give linear speedup and use space within a constant factor of the sequential space.
Guy E. Blelloch, John Greiner
ICFP2
1996 A Provably Time-Efficient Parallel Implementation of Full Speculation
abstract
Speculative evaluation, including leniency and futures, is often used to produce high degrees of parallelism, Existing speculative implementations, however, may serialize computation because of their implementation of queues of suspended threads. We give a provably efficient parallel implementation of a speculative functional language on various machine models. The implementation includes proper parallelization of the necessary queuing operations on suspended threads. Our target machine models are a butterfly network, hypercube, and PRAM. To prove the efficiency of our implementation, we provide a cost model using a profiling semantics and relate the cost model to implementations on the parallel machine models.
John Greiner, Guy E. Blelloch
POPL1
1996 Weak Polymorphism can be Sound
abstract
Abstract The weak polymorphic type system of Standard ML of New Jersey (SML/NJ) (MacQueen, 1992) has only been presented as part of the implementation of the SML/NJ compiler, not as a formal type system. As a result, it is not well understood. And while numerous versions of the implementation have been shown unsound, the concept has not been proved sound or unsound. We present an explanation of weak polymorphism and show that a formalization of this is sound. We also relate this to the SML/NJ implementation of weak polymorphism through a series of type systems that incorporate elements of the SML/NJ type inference algorithm.
John Greiner
J. Funct. Program.1
1994 A Comparison of Parallel Algorithms for Connected Components
abstract
This paper presents a comparison of the pragmatic aspects of some parallel algorithms for finding connected components, together with optimizations on these algorithms. The algorithms being compared are two similar algorithms by Shiloach-Vishkin [22] and Awerbuch-Shiloach [2], a randomized contraction algorithm based on algorithms by Reif [21] and Phillips [20], and a hybrid algorithm [11]. Improvements are given for the first two to improve performance significantly, although without improving their asymptotic complexity. The hybrid combines features of the others and is generally the fastest of those tested. Timings were made using NESL [4] code as executed on a Connection Machine 2 and Cray Y-MP/C90.
John Greiner
SPAA1