Ian Reddy
Progress Report
With regards to my approach, I tried to interface Java with VSIPL library. I could execute some programs purely using VSIPL API's but had problems interfacing with Java. I was able to manually code the wrappers and compile the files but would get an error while executing, I'm still working on this. In order to get some help, I bumped into a couple of papers,
#>InAspect – Interfacing Java with VSIPL
Alford, Shah, Skjellum, Younan.
#>An advanced signal processing toolkit for Java applications
Alford, Shah, Skjellum, Younan.
The papers gave me an insight onto interfacing java with high performance libraries, It also shed light upon JNI overheads and a need for a queuing system. The JNI implementation may help in improving performance of code, but the communication across JNI is slow. Sometimes the overhead may nullify the performance achieved. To circumvent this problem, the solution proposed was a queueing system. The queue consists of method calls, which once created could be used for various streams of data. It eliminates the need for making native call for each method. Once the queue is created a single native call can be used to perform the operations on the queue. This model would help in performing JNI operations more efficiently with less overhead. I have been trying to implement a queueing model for simple Java Native code, but running into a bunch of problems. I'm trying to re-iterate my approach.