James Canning
University of Massachusetts Lowell
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by James Canning.
conference on scientific computing | 1989
James Canning; Richard A. Miner
A parallel pipelined data flow coprocessor has been developed for the 68000 based Commodore Amiga workstation. The coprocessor, based on Nippon Electric Corporations μPD7281 Image Pipelined Processor (ImPP), was designed as an algorithm processor for numerically intensive applications such as image processing, image synthesis, and numerical analysis. The coprocessor can accomodate up to seven of the 5-MIPS ImPPs providing over 30 MIPS of processing power to dedicated tasks. The ImPPs act as true coprocessors providing a multi-processor arrangement consisting of the 68000 and the coprocessors parallel pipeline. The workstation and parallel processors share all system resources including memory and peripherals. The coprocessor has its own DMA capabilities for transferring program code and data between the workstation and the pipeline. The coprocessor is completely programmable via a development environment running native on the Amiga, including an assembler, a simulator, and a runtime library. Additional programming tools are also being developed.
technical symposium on computer science education | 2004
James Canning; William Moloney; Ali Rafieymehr; Demetrio Rey
We describe a technique for beginning students to read and verbalize a declarator in the C programming language. Once learned, students will be able to easily state the type of an object without hesitation. It is suggested that this technique be taught to students during the first week of an introductory C programming course. Getting students to correctly read and verbalize types hastens their learning of the language and supports necessary discussion of a programs translation and execution environments.
ACM Sigapl Apl Quote Quad | 2002
Demetrio Rey; Joss Stubblefield; James Canning
This paper describes the port of the ZPL parallel array language to the Mercury-RACE, a multicomputing system designed for embedded real-time applications. We discuss the design of the language runtime system and our strategy on mapping ZPL operators to hardware communication. We also show performance results of the ZPL parallel matrix inverse algorithm on the target architecture.
technical symposium on computer science education | 1994
Aaron Garth Enright; Linda Wilkens; James Canning
Most computer architecture courses are geared toward the classical von Neumann style of computer architectures, mentioning only in passing other models such as data flow computation. This is unfortunate, due to the high degree of parallelism possible using data flow. We present an alternative course, designed as an elective in computer architecture for upper level undergraduate or graduate students, that presents a side-by-side comparison of von Neumann and data flow architectures.Our teaching environment is based on Simple Arithmetic SISAL (SAS), a subset of the applicative programming language SISAL, which we designed for both teaching about and research into data flow architectures. SAS runs in a highly integrated environment, allowing students to implement their program on a von Neumann architecture, then observe its execution through a data flow simulator. The environment runs on a standard IBM-style personal computer, providing a cost-effective platform for presenting the course.
symposium on small systems | 1991
James Canning; David Pelland; Sharon Sliger
The concept of visual programming, merged with contemporary user interfaces for workstations has tremendous potential to transform non high level programmers into visual programmers. Furthermore, visual programming provides an excellent prototyping environment, one which allows the user to intuitively grasp difficult concepts. In this paper we describe our visual programming environment, termed Eyes, and explain how we intend to apply it toward education.
conference on scientific computing | 1989
James Canning; Richard A. Miner; Iheanacho Nwokogbo
The ULowell Data Flow Project combines dataflow hardware, dataflow software, and a data flow development environment. The hardware component, a data flow coprocessor card, utilizes seven NEC 7281 Image Pipelined Processors. Each chip models a static dataflow computation and is programmable. The coprocessor was designed and implemented by ULowell personnel and uses an AMIGA 2000 as a host. The software component currently consists of a library of data flow image processing algorithms and an evolving software development environment. Currently the image processing library includes typical imaging operations such as: edge enhancement, filtering, histogramming, and affine transformation. The software development environment (SDE) is depicted in Figure 1. The SDE contains a Data Flow Graph Editor which programmers use to design their data flow code. The data flow algorithm can then be converted directly into NEC data flow assembly code which is then assembled using the ULowell Data Flow Assembler. The assembler differs from NECs assembler in that it can produce relocatable code. The object code output of the assembler is given to the Data Flow Resource Manager. The resource manager monitors the available resources within the chips. Thus, if a single process does not totally utilize a chips table space or memory, then a second process may be concurrently loaded onto the same chip. The ability to have multiple data flow processes coexisting within a single chip is unique to the ULowell environment. The data flow resource manager can download and monitor code to either the hardware or to a software simulator/debugger. The simulator/debugger can monitor and trace data flow tokens as they proceed through the chip. Output of the simulator/debugger can be fed back into the data flow graph editior to visually trace token flow through the original program design. The last component of our SDE is a High Level Language translator which can compile programs written in SISAL, a high level language for parallel computation, down to NEC 7281 assembly language. We have already implemented the relocatable assembler, and the data flow resource manager. Prototype versions of the high level translator, simulator/debugger and graph/editor are currently being implemented.
applications and theory of petri nets | 1992
Linda Wilkens; James Canning; Patrick D. Krolak
We describe an. automated modeling system which uses extended Petri nets to model dataflow programs executing on a dataflow architecture. We independently model both a dataflow algorithm and a dataflow architecture, and describe how these two models are fused. The fused model allows the parallel programmer to maintain a logical connectivity between the dataflow graph and its execution on the machine. The fused net is executed by our software to generate statistics which enable parallel programmers to efficiently map algorithms onto parallel architectures.
ACM Sigsmall\/pc Notes | 1992
James Canning; David Pelland; Sharon Sliger
The concept of visual programming, merged with contemporary user interfaces for workstations has tremendous potential to transform non high level programmers into visual programmers. Furthermore, visual programming provides an excellent prototyping environment, one which allows the user to intuitively grasp difficult concepts. In this paper we describe our visual programming environment, termed Eyes, and explain how we intend to apply it toward education.
technical symposium on computer science education | 1991
James Canning
The University of Lowells Department of Computer Science offers a course in data flow programming which provides students with the opportunity to run their programs on an actual, rather inexpensive dataflow machine. Students gain a much deeper understanding of the issues related to line grain parallel processing. The course not only surveys various dataflow architectures and languages, but also involves laboratory assignments where students must design, debug and execule dataflow programs.
conference on scientific computing | 1991
James Canning; David Pelland; Sharon Sliger
Visual programming, a paradigm which allows mental concepts to be represented pictorially, has emerged as a technique to enhance computer utilization. A visual program is created by selecting predefined icons and arranging them on a bit-mapped display device. Icons can be connected to model both data and control dependencies in a visual program. The University of Lowells Center for Productivity Enhancement has developed a highly portable visualization programming system, referred to as Eyes. This system allows application developers to define icons tailored to specific problem domains. After developers have defined their iconic language, visual programmers can then select and connect these language constructs to build their visual program.