Travel Report

Taiwan (NCREE) April 22-29, 2006
Paul Hubbard

Purpose of Trip

While I was at the NEES World Forum meeting (San Francisco, March 2006) Keh-Chyuan (K.C.) Tsai of NCREE invited me to visit their facility, primarily to discuss their hybrid simulation software. We first discovered their software in February while researching the state of the art in hybrid simulation. Because they've solved many of the problems NEES is facing, I had emailed them in February to ask if they'd share code. At the time, they were not ready to share code due to its being tightly coupled to their local setup.

I was therefore quite happy to accept the invitation to visit their facility and exchange ideas. K.C. kindly offered to provide partial support for my visit and suggested dates when the primary author of NSEP (Kung-Juin Wang) would be available for extended discussions and tutorials. Kung-Juin had not attended the March or April meetings, making this my first chance to meet him.

After attending Yuen-Sen Yang's talk at 8NCEE, it was clear that their software (ISEE, either database approach or PNSE) was currently not designed to hit the 75Hz rates required in NEES. There are still interesting ideas in the protocol (NSEP) and after discussion with Jon Lea, Lelli van den Einde, and Cliff Roblee, I decided that it was still worthwhile to go and visit. The goals changed a bit, from 'can we adopt PNSE in NEES' to 'Learn about PNSE/NSEP, and show NCREE the capabilities of NEES.'

Direct feedback and general comments

K.C. started out with a general presentation about their lab, software and hardware. Their streaming data is 50Hz, and their integration timestamps are usually 0.02 to 0.005sec (5-200Hz) (in analytical time, not wall-clock time). NCREE and its network experimental software focus on slow speed hybrid tests.

Their research has already produced results in codes and construction - they showed pictures of their improved brace design in place at Chi-Mei chip fab #5.

K.C. mentioned that they had a summer student, Bryan Lin, and that he'd be available for working on the NEES-NCREE collaboration if we can think of an appropriate project. I've started a discussion with Shannon on this.

Yuan-Sen (Vincent) Yang presented about ISEE, their video subsystem and the 'database approach'. (PNSE uses TCP/IP for communications between the server and the clients. The PNSE server can optionally upload all non-critical data to an MS SQL database.)

Their video system is similar to flexTPS - it uses the Microsoft WMV video encoder, streams are defined by IT personnel, and access is via a web page with the URLs on it.

NSEP in the database configuration runs about 3 seconds per step depending on the configuration and network. One of the limitations of this design is that the various clients have to poll the database for new data, which limits the rate and introduces load on the DB server. On the positive side, using the DB as a data store and state table has benefits as well - all data is always available, the DB provides consistency and durability, and the interface is well defined. (SQL).

Over the course of three days, I demonstrated pretty much every software product in NEES: RDV, Central, flexTPS, PNNL ELN, NEES ELN, high-res imaging via DAV/HTTP, the HTTP/PNGplugin demo, the DAQ code, NTCP client/server/benchmarks, SingleShot, JNLP/RDV, the NEES telepresence system (NJZTPM), NEESforge and the new HTTP data turbine demo. It was particularly useful to have along an accelerometer, network camera and digital camera, as this enabled a hands-on demo with Yuan-Sen running RDV from his laptop via JNLP, while I ran data turbine from my laptop. It seems like demos are much more compelling when you show them JNLP and how easy it is to run the code themself on their own hardware. Here's a screenshot of RDV in action:
RDV in action

The hacked-up code that I wrote for high-res imaging at 8NCEE was of interest - they have a similar capability in their current system. As with UMN, higher resolution is useful for seeing small cracks and fine details on the test specimens. We discussed the demo (which uses Automator and the data turbine DAV interface) and a bit about jcamera. They're a Windows shop, so the demo won't work there (Automator is OSX only), so we discussed other ways of achieving the same effect (Nikon Capture 4, PSremote).

The demo of SingleShot was interesting - they have a tool with similar capabilities and purpose, though their data model differs. They're working with the SAMCO consortium on a data model, and also with an engineering company VCE from Austria. (I'm not sure if http://www.samco.org/ is this same group or not.)

Here's my sketch of their data model, as presented by Wen-Hsiang Tu:

Sketch of data model
This is from hand-drawn notes, so I may have made mistakes.

Their previous model looked like this:
Previous data model sketch
The same caveats apply here; this is from my lab notebook.

We talked about the NEES data model, how it continues to evolve in Central, and that more of Kincho's work would be incorporated as development proceeded. Ironically, Kincho Law himself arrived late in the week for a visit on an unrelated project, and he and I had a brief discussion of data models.

The NCREE streaming data solution uses the database (as noted above), with a locally-written program to fetch data and plot it. Plots (e.g. 'X displacement versus time') are defined ahead of time by the PI, researcher or grad student. The configuration is an XML file on the server. They were interested to know whether or not RDV had similar functionality. (I talked about save/restore setup and the JNLP command line, which is a rough equivalent.) They can also do overlaid XY plots that RDV presently can't do, for example predicted stress-strain and measured.

They liked the HTTP interface, where data could be shown without a local client or download. Since they run 3 seconds/step, an HTTP auto-refresh would suffice to keep the data current. They are also interested in real in-web-page data turbine clients, so I talked about the ORST code and the better UMN thin client.

K.C. had arranged a visit to National Center for High-performance Computing (NCHC) in Hsinchu science park. There, we met and talked with Hsiu-Mei Chou. She had googled me, figured out that I worked with turbine, read up on it and had questions about how she could use it there. I gave her an impromptu demo of DT and RDV, and we discussed her using DT for stereo video feeds.

Kung-Juin Wang is the primary architect on PNSE. He's a PhD student, two years in, working on hybrid sim. He gave an in-depth presentation on the PNSE protocol NSEP. One consequence of their design is that there's no explicit error code returned; errors show up as new events that propagate afterwards. This leads to a very complicated state machine and some difficult-to-fix bugs. He and I discussed whether adding error codes to NSEP was the right thing to do, how NTCP did it, and the tradeoffs in both designs. (Implicit error returns are faster, since there's one fewer message reply.) NSEP uses a binary protocol, using 4-byte floats for all data. We talked about the need for double precision (8 bytes per) and other data types. His protocol allows a vector of floats as a parameter, so I told him that our researchers had asked for the ability to send any data as a parameter - floats, ints, doubles, strings, vectors, matrices, even composite C-type structures. NSEP is pretty fast - 0.8 milliseconds/step in a LAN test. However, their code is mostly hardwired and not ready to share; refactoring is high on Kung-Juin's task list.

NSEP sends all experiment/test metadata to a client right after login, which is a clever idea. They also separate critical data from non-critical data, which is something we can borrow for our hybrid solution. For example, non-critical data could be streamed to the turbine as time permits, and dropped if the server gets too busy. It's a cute idea.

NSEP also has two kinds of quit - a full stop and a pause. Basically, one is a 'please wait while I fix this error' and the other is 'Give up, all is lost' - another useful concept.

They have a separate protocol (NMTP) between PNSE and the DAQ for data and triggering; it sounds similar to the NEES DAQ protocol except that we use NTCP for triggering.

NCREE wants some sort of e-notebook, so I demo'd the NEES (Nestor) notebook using Nestor's site. For the PNNL E-notebook, I had to use video from the PNNL site which worked out better since it showed all features of their software.
One idea I had was that, if you use the NEES notebook, you could use a PDA with WiFi to take notes while on the lab floor. This is quite a bit cheaper than a full tablet PC. While demoing the notebook, we also came up with the idea that you could have an ELN function to snapshot plots into the notebook by using the Creare PNG plugin and HTTP interface; very easy.

Since NCREE is interested, I have subsequently been in contact with Nestor and Jim Myers about their software, it's status and future plans. I also asked Nestor how hard it'd be to separate the ELN from his video code, since they only need the ELN functionality.

We spent quite a bit of time discussing how to add turbine support to their systems. Their DAQ used for hybrid tests is static, which is a problem, but K.C. would very much like the live streams that RDV presents. (They also have a 200Hz DAQ on their shake table, which has not been used for networked hybrid tests. We didn't have a chance to talk about that.) We brainstormed several approaches, and they are going to start working on this. K.C. also asked me to find out what's required for an MOU between NEES and NCREE - does he need to talk to the NEES president or NEESinc? I've started inquiries on this.

One possible contribution I suggested they could investigate is their 3D visualization program, GISA3D. I suggested that this could become an RDV plugin, which would be of great benefit to other NEES users as well. I know that UMN has something similar that they wrote, and Davis as well, so an RDV add-on would be welcome.

Similarly, KJ was talking about writing a plot program to show live data from the MTS controllers; I explained that he could run a local turbine on the same machine and then use RDV. He's going to look into the idea.

I demo'd neesforge, which we discussed as a mechanism of collaboration between NCREE and NEES. It seems a good fit, though we may need an RDV project page or perhaps just a plugin project.

Pictures from the trip are posted as well.