Automated Interface Generation for Remote Access to Adaptive Computing Resources Christopher C. Doss and Clay Gloster NC State University Please send all correspondence to Clay Gloster Clay Gloster, Jr., Ph.D., P.E. NC State University Department of Electrical & Computer Engineering Box 7914 Raleigh, NC 27695-7914 email: gloster@eos.ncsu.edu telephone: (919) 515-7348 fax: (919) 515-2285 Adaptive computing has emerged as a viable computing option for implementing computationally intensive applications. Herein, an adaptive computer is a computer system that contains a host processor attached to a programmable logic device, i.e. a field programmable gate array (FPGA). These computing systems combine the flexibility of general purpose processors with the speed of application specific processors. By mapping hardware to FPGAs, the system designer can cater the hardware to a specific application. Because the arrays do not have a fixed structure, they can be reconfigured for other applications. Due to the excessive cost of FPGAs and the limited availability of engineers with extensive hardware design expertise, research organizations often have access to few adaptive computers. This results in a limited number of applications that are ultimately mapped to this environment. Our research extends the use of an adaptive computer to act as an application server, allowing client computers to attach to it and utilize its available resources. This allows users to benefit from the potential performance gains that are offered by an adaptive computer without the need to gain substantial expertise in the field. This paper presents the initial phase of the RARE (Remote Adaptive computing Resource Environment) project. RARE provides users access to adaptive computing resources from a remote site. The initial phase of the project involves the creation and verification of FEW (FilE Writer), a tool that examines an input specification of an adaptive computing resource module and automatically generates all files required to interface a remote client to the application server that implements this module. Written in Java and C, RARE allows clients to access the field programmable gate arrays of an adaptive computer. Host to FPGA interface modules are written in C, while the client to server interfaces are written in Java. The goal of the work presented in this paper is to automatically generate these interfaces, relieving the user of this task. The adaptive compute server manages a set of routines that have been previously implemented by hardware design engineers. All potential users of the resource obtain the list of routines and how to utilize them from the RARE web site. We prove the viability of RARE by implementing a multispectral image classification algorithm to the FPGA coprocessor. This algorithm, based on a probabilistic neural network (PNN), classifies image pixels, originating from a satellite, as belonging to certain classes (water, forest, tundra, etc.). A client processor is able to send pixel data over the Internet to the adaptive computer server. The server performs the calculations and sends the results to the client. The client and server communicate with each other using Java Remote Method Invocation (RMI) and the server communicates with the FPGA coprocessor using the Java Native Interface (JNI). We then developed an input specification of the PNN algorithm for use with the program FEW. FEW automatically generates all required client and server RMI file stubs, as well as the server JNI file stubs. Results indicate that the use of the FPGA coprocessor provides an order of magnitude speedup over the implementation executed on the host alone.