Raphael A. Finkel

Learn More
An algorithm and data structure are presented for searching a file containing N records, each described by k real valued keys, for the m closest matches or nearest neighbors to a given query record. The computation required to organize the file is proportional to kN log N. The expected number of records examined in each search is independent of the file(More)
The quad tree is a data structure appropriate for storing information to be retrieved on composite keys. We discuss the specific case of two-dimensional retrieval, although the structure is easily generalised to arbitrary dimensions. Algorithms are given both for staightforward insertion and for a type of balanced insertion into quad trees. Empirical(More)
Experience with process migration in the Charlotte distributed operating system is discussed. Charlotte's migration facility is a fairly elaborate addition to the underlying kernel and utility-process base. It separates policy from mechanism. An overview is given of Charlotte, its process migration facility, and issues encountered that have a general(More)
DIB is a general-purpose package that allows a wide range of applications such as recursive backtrack, branch and bound, and alpha-beta search to be implemented on a multicomputer. It is very easy to use. The application program needs to specify only the root of the recursion tree, the computation to be performed at each node, and how to generate children(More)
We describe two new algorithms for implementing barrier synchronization on a shared-memory multicomputer. Both algorithms are based on a method due to Brooks. We first improve Brooks' algorithm by introducing double buffering. Our dissemination algorithm replaces Brook's communication pattern with an information dissemination algorithm described by Han and(More)
Realtime multimedia applications such as conferencing, broadcast video, and distributed virtual reality demand predictable QoS from both endsystem and network resources. We argue that in a general-purpose computer, applications do not know the exact resource requirements in advance, and resource requirements and resource availability change at runtime. To(More)
A large-network algorithm solves a problem of size N on a network ofN processors. We present a method for transforming certain large networks into quotient networks that emulate those large networks with fewer processors. Large-network algorithms are easily modified to execute on the quotient network. The emulations result in no loss in execution(More)
Easy access to the Web has led to increased potential for students cheating on assignments by plagiarising others’ work. By the same token, Web-based tools offer the potential for instructors to check submitted assignments for signs of plagiarism. Overlap-detection tools are easy to use and accurate in plagiarism detection, so they can be an excellent(More)