Home Research Projects Publications Resume Teaching
    TennisMatchViz: A Tennis Match Visualization System

    Sports data visualization can be a useful tool for analyzing or presenting sports data. In this paper, we present a new technique for visualizing tennis match data. It is designed as a supplement to online live streaming or live blogging of tennis matches. It can retrieve data directly from a tennis match live blogging web site and display 2D interactive view of match statistics. Therefore, it can be easily integrated with the current live blogging platforms used by many news organizations. The visualization addresses the limitations of the current live coverage of tennis matches by providing a quick overview and also a great amount of details on demand. The visualization is designed primarily for general public, but serious fans or tennis experts can also use this visualization for analyzing match statistics. We demonstrate this visualization technique with the example of 2015 French Open final match.

    Papers:
    TennisMatchViz: A Tennis Match Visualization System
    Source Codes:
    Implementation Based on D3
    Demonstration
    Link

    Integrated Spatio-temporal Storyline Visualization with Low Crossover

    A story is a chain of events that have multiple dimensions, including time, location, characters, actions, and context. Storyline visualizations attempt to visually present the multiple dimensions of a story’s events and their relation-ships. However, integrating the temporal and spatial dimension in a single visualization view is often challenging. One of the main reasons is that spatial data is inherently 2D while temporal data is inherently 1D. We propose a storyline visualization technique that integrate both time and location information in a single view while maintaining regular ordering of temporal and spatial dimensions. In particular, we propose a heuristic method to reduce excessive line crossovers for large data sets. Through case studies, we show that this visualization method provide a good balance in integrating temporal and spatial dimensions.

    Papers:
    Integrated Spatio-temporal Storyline Visualization with Low Crossover
    Source Codes:
    Implementation Based on D3

    Text X-Ray: An Interactive Text Visualization Tool for Corpus-based Language Teaching and Learning

    Corpus and corpus tools have become an important part of language teaching and learning. And yet text visualization is rarely used in this area. In this paper, we present Text X-Ray, a Web tool for corpus-based language teaching and learning. Interactive text visualizations in Text X-Ray allow users to quickly examine a corpus or corpora at different levels of details: articles, paragraphs, sentences, and words. Users can use the text visualizations to quickly compare the complexity of multiple articles by visually checking sentence lengths, sentence grammar trees, and word patterns. Traditional linguistic analyses such as readability indices or lexical density provide useful information, but they do not provide enough detail. Text visualizations fill that gap. The text visualizations are synchronized with the textual display and are designed for easy transition between textual and visual analysis. Text X-Ray also allows teachers or students to load their own articles or corpora and compare them with other corpora.

    Papers:
    Text X-Ray: An Interactive Text Visualization Tool for Corpus-based Language Teaching and Learning
    Source Codes:
    Implementation Based on JQuery UI
    Demonstration
    Link

    An Indented Level-Based Tree Drawing Algorithm for Text Visualization

    Level-based tree drawing is a common algorithm that produces intuitive and clear presentations of hierarchically structured information. However, new applications often introduces new aesthetic requirements that call for new tree drawing methods. In this paper, we propose an indented level-based tree drawing algorithm for visualizing parse trees of English language. This algorithm displays a tree with an aspect ratio that fits the aspect ratio of the newer computer displays, while presenting the words in a way that is easy to read. We discuss the design of the algorithm and its application in text visualization for linguistic analysis and language learning. An efficient and practical implementation of the algorithm is also presented.

    Papers:
    An Indented Level-Based Tree Drawing Algorithm for Text Visualization
    Source Codes:
    Javascript Implementation Based on D3

    Parallel Priority Queue on Many-core Architectures

    An efficient parallel priority queue is at the core of the effort in parallelizing important non-numeric irregular computations such as discrete event simulation scheduling and branch-and-bound algorithms. GPGPUs can provide powerful computing platform for such non-numeric computations if an efficient parallel priority queue implementation is available. In this paper, aiming at fine-grained applications, we develop an efficient parallel heap system employing CUDA. To our knowledge, this is the first parallel priority queue implementation on many-core architectures, thus represents a breakthrough. By allowing wide heap nodes to enable thousands of simultaneous deletions of highest priority items and insertions of new items, and taking full advantage of CUDA's data parallel SIMT architecture, we demonstrate up to 30-fold absolute speedup for relatively fine-grained compute loads compared to optimized sequential priority queue implementation on fast multicores. Compared to this, our optimized multicore parallelization of parallel heap yields only 2-3 fold speedup for such fine-grained loads. This parallelization of a tree-based data structure on GPGPUs provides a roadmap for future parallelizations of other such data structures.

    Papers:
    Design and Implementation of a Parallel Priority Queue on Many-core Architectures
    Source Codes:
    Zip

    Parallel Rtree on Many-core Architectures and Its Application in GIS Overlay Computation

    Overlay processing of two or more thematic layers of Geoscience polygonal data is a frequently employed fundamental operation. As opposed to raster data, polygonal data overlaying is irregular and both computation and data intensive. Existing parallelizations have exclusively been over traditional hardware platforms. This work presents the first Geographic Information System (GIS) for overlay processing over GPGPU platforms. This work also has other firsts: To enable efficient identification of the potentially intersecting set of polygons across two input GIS layers, we show how to construct a parallel R-Tree on CUDA architecture and how to efficiently search over it concurrently for thousands of bounding boxes. This involved employing space filling curves for bottom-up construction of R-Tree and non-trivial query bundling and CUDA shared-memory (as opposed to global memory) management for concurrent search. A complex coordination between CPU and GPU was needed to manage dynamic memory allocation for R-Tree construction, search, and for the variable number and size of individual output polygons. We present detailed algorithms and how these were engineered for CUDA . Our experiments also demonstrate good speedups over nVidia's CUDA 1.x and Fermi architectures.

    Papers:
    A GPU-Based System for GIS Polygonal Data Overlay Processing
    Source Codes:
    Zip

    Improving Parallel Java Cluster Middleware

    As CPU clock speed increase has been limited by the cooling techniques and multicore architecture has been widely adopted, Parallel Computing is attracting more and more attention. Parallel Java (PJ) is an API and middleware for parallel programming in 100% Java developed by Professor Alan Kaminsky. It is running well on cluster parallel computers at Computer Science Department, Rochester Institute of Technology. However, the job launching scheme in PJ is not as efficient as we expect, and it takes a while for PJ to actually start running the submitted jobs. Besides, currently the only way for PJ users to submit their jobs is to log in to the cluster parallel computers and type a few Unix commands via command lines, which has a steep learning curve for people with little computer knowledge. This project aims to improve the job launching scheme in PJ and make it faster to launch the submitted jobs. Also, the project is targeted at providing PJ users an enhanced Web interface with more functionality. To achieve our goal, we replace SSH protocol with Message Authentication Codes (MAC) based protocol in the new job launching scheme, redesign the protocol for communication be- tween processes, and implement and evaluate the new job launching scheme. We also improve the existing Web interface and add to it more functionality such as security, user authentication, session management and job submission.

    Papers:
    Improved Parallel Java Cluster Middleware
    Source Codes:
    Zip

    Cyberaide Shell: Interactive Task Management for Grids and Cyberinfrastructure

    A steep learning curve and a high entry barrier limit the use of Grid computing and advanced cyberinfrastructure. These barriers become a significant issue to scientists which benefit from advanced cyberinfrastructure the most. In order for the scientists to focus on actual scientific tasks, specialized tools and services need to be developed to ease the integration of complex middleware. Our solution is Cyberaide Shell, an advanced but simple to use system shell which provides access to the powerful cyberinfrastructure available today. Cyberaide Shell is based on the integration of semantically enhanced commands and a dynamic interface that allows access to complex cyberinfrastructure in an easy and intuitive fashion on an ad-hoc basis. This is accomplished by abstracting the complexities of resource, task, workflow, and application man- agement through a semantic command line interpreter. Through a service integration mechanism, the shell’s functionality is exposed to a wide variety of frameworks and programming languages. This includes client interfaces for Java, Ruby, Python, Matlab, R, JavaScript. We present our design and describe our use of the shell while integrating TeraGrid resources. We also demonstrate the usability of Cyberaide Shell using a Water Threat Management application deployed on the TeraGrid.

    Papers:
    Cyberaide Shell: Interactive Task Management for Grids and Cyberinfrastructure
    Experiment and Workflow Management Using Cyberaide Shell
    Cyberaide JavaScript: A JavaScript Commodity Grid Kit