NextMove Software
  • Home
  • Products
  • Technology
  • About Us
  • Blog

Corporate Offices

NextMove Software
Innovation Centre
320 Cambridge Science Park
Milton Road
Cambridge
England
CB4 0WG
General Inquiries: info@nextmovesoftware.com
Support: support@nextmovesoftware.com

PPAccelerator

Dramatically improve the performance of protocols developed for the industry standard Pipeline Pilot workflow platform.

Accelrys' Pipeline Pilot is a powerful client-server platform that streamlines processing and analysis of the vast quantities of data in research informatics. NextMove Software's PPAccelerator complements the agile development environment provided by Accelrys, providing performance optimization tools which allow protocols to be deployed in the enterprise. Speed-ups of over a thousand fold are potentially available, as described below, allowing previously intractable problems to be tackled within research organizations.

The rapid development benefits of a streaming architecture, visual programming and interpreted scripting languages that greatly simplify prototype development unfortunately incur significant performance overhead in delivered applications. NextMove Software's solution to this problem is to use optimizing compiler technology that allow Pipeline Pilot scripts and protocols to be analysed and optimized at development time, resulting in greatly improved run-times. Protocols previously restricted to thousands or tens of thousands of molecules or data records can now be applied to corporate data sets of millions of data points.

Benchmark

To evaluate the run-time performance of Accelrys' PilotScript interpreter, and the potential benefits of NextMove Software's PPAccelerator technology we'll consider the common numeric benchmark of calculating a Mandelbrot set fractal. This calculation tests the efficiency of simple loops and conditionals, and floating point, integer and string operations. By restricting the evaluation to common scripting language operations, the performance of pilotscript can be directly compared to other programming languages (both compiled and interpreted) such as C and python.

The PilotScript source code for the benchmark is given below. When executed, the program generates a 512 by 512 pixel image in portable pixmap format of an interesting area of the Mandelbrot set. When executed, this program produces the following image.

PilotScript Source Code

#d0 := 0.0004;
#xo := -0.7434;
#yo := 0.1058;

out := "P3\n512 512\n256\n";
#delta := #d0 / 512.0;
#y := #yo;
FOR #yp IN 0 .. 511 LOOP
  #x := #xo;
  FOR #xp IN 0 .. 511 LOOP
    /* Mandelbrot calculation */
    #count := 1;
    #a := #x;
    #b := #y;
    WHILE TRUE LOOP
      #apb := #a+#b;
      #amb := #a*#b;
      #dab := 2.0*#amb;
      #size := #apb*#apb-#dab;
      IF #size >= 4.0 THEN
        BREAK;
      END IF;
      #count += 1;
      IF #count == 256 THEN
        #count := 0;
        BREAK;
      END IF;
      #a := #apb*(#a-#b)+#x;
      #b := #dab+#y;
    END LOOP;

    /* Convert #count to #r,#g,#b */
    IF #count < 32 THEN
      #r := 0;
      #g := 0;
      #b := 4*#count;
    ELSIF #count < 64 THEN
      #t := #count - 32;
      #r := 0;
      #g := 6*#t;
      #b := 128-4*#t;
    ELSIF #count < 96 THEN
      #t := #count - 64;
      #r := 8*#t;
      #g := 255;
      #b := 2*#t;
    ELSIF #count < 128 THEN
      #t := #count - 96;
      #r := 255;
      #g := 255-6*#t;
      #b := 64-2*#t;
    ELSIF #count < 160 THEN
      #t := #count - 128;
      #r := 255-6*#t;
      #g := 64-2*#t;
      #b := 0;
    ELSIF #count < 192 THEN
      #t := #count - 160;
      #r := 54+6*#t;
      #g := 0;
      #b := 8*#t;
    ELSIF #count < 224 THEN
      #t := 8*(#count - 192);
      #r := 255 - #t;
      #g := #t;
      #b := 255;
    ELSE
      #r := 8*(#count-224);
      #g := 255;
      #b := 255;
    END IF;
    out .= #r . " " . #g . " " . #b . "\n";
    #x += #delta;
  END LOOP;
  #y -= #delta;
END LOOP;

Results

The table below presents the observed performance of this benchmark on typical hardware. All the timings were obtained on the same machine running Microsoft Windows.

Implementation Run-time Speed-up
Accelrys PilotScript Interpreter 108m22.00s
Tcl v8.4 Interpreter 72m13.80s 1.5x
NextMove PilotScript Interpreter 2m53.89s 37x
Python v2.5 Interpreter 55.88s 116x
Perl v5.10 Interpreter 46.80s 139x
Python v2.5 Bytecode Interpreter 28.88s 225x
NextMove PilotScript Compiler 5.73s 1083x
GNU C/C++ v4.2 Compiler 0.61s 10660x

The above numbers show that NextMove's accelerated interpreters and compilers for Accelrys' PilotScript offer dramatic performance gains over the bundled interpreter provided by Accelrys. However, the results for Python and Perl demonstrate that there remain improvements that can be made to NextMove's interpretation technology (including Just-In-Time compilation), and the phenomenally impressive result for compiled C/C++ shows that there are also further opportunities for NextMove's PilotScript compiler technology.

Conclusions

Ignoring the additional performance opportunities available to NextMove Software's PPAccelerator tools from the use of advanced and more efficient algorithms for cheminformatics tasks, the above analysis of ubiquitous scripting language functionality shows that dramatic performance improvements (in this case 1000-fold) are possible.

Pipeline Pilot, PilotScript and Accelrys are registered trademarks of Accelrys Inc., Suite 100, 10188 Telesis Court, San Diego, California, CA 92121-4779, U.S.A. www.accelrys.com

©2025 NextMove Software. All rights reserved.