Internal Infrastructure Projects

Parallel Software Development Infrastructure & Tools

Developing a C++ based software infrastructure(CBILIB) aimed at making the process of creating parallel versions of serial algorithms more straightforward. Specifically targeting a hybrid programming model using MPI for domain level decomposition, OpenMP for intra-system parallelism, and OpenCL for external accelerator parallelism with GPGPUs.
This internal code development toolbox aims at providing key functional
components required of many scientific codes, providing novel functionality as well as providing

-Developing custom software tools to facilitate the utilization of the Matlab Distributed Computing Server.

-Developing use case tutorials and programming examples to enable utilization of the Matlab Distributed Computing Server Cluster @ CBI Laboratory.

-Providing software development consulting services to enable running user codes on the Matlab Distributed Computing Server Cluster.

Publications: In progress



Providing expertise and custom software utilities to enable the creation of standalone executables using the Matlab compiler and deployment tools on both the Windows and Linux platforms. This process enables grid based approaches to using Matlab codes while minimizing license utilization.

As part of our consulting services we can provide users with a variety of utilities aimed at helping streamline the process of managing their job submission and parameter management.

1) CBI Parameter management utilities

Developing custom software processes to enable the utilization of Matlab compiled code to be used on the web as well as providing support to assist in converting Matlab projects to compiled versions that can be utilized from a web server.





The git code repository environment allows for developing software in a team environment using Agile software development methodologies.

Providing consulting services to users wishing to learn more about using source code revision control systems.


Gitlab( )

Turnkey Linux + Gitlab

BitNami+GitLab  (   )

Software Development Workflows for git: In-progress



Providing tutorials, code examples and workshops on a variety of high performance computing topics, such as developing parallel software using Matlab. In addition, providing users with assistance in using the various grid utilities available such as the Sun Grid Engine to enable them to create distributed grid software projects to run on our cluster.


Matlab Learning Resources:

Goal: To form a centralized data hosting system with the following features

  • Data Integrity: Utilizing traditional disaster recovery with ZFS features to protect against loss and corruption.
  • Ease of use: Samba provides Windows Networking for users to easily access files via a familiar interface.
  • Central Control: All data hosting contained within a single setup for simplified configuration and administration.
  • Quotas: ZFS provides simple interface for quota enforcement to ensure fair usage of system.

Enabling access to third-party libraries in C,C++ from Matlab environment.

Among the current list of libraries are:

1. lpsolve: A C library for linear programming( Windows 7 64 bit, Linux(in progress) )

2. ITK, SimpleITK ( in progress )

3. GSL ( in progress ) ... many more potential external library integration opportunities within Matlab.

Software development consulting service towards development of custom image processing tasks & algorithms.

Software Tools:

- ImageJ: Programming Language: Java ( Download:  )

References: [1]

- Imaris

Computer Science Related Research lead by CBI Laboratory:


Algorithms & Data Structures References:


Important Fundamental Algorithms:

[1] FFT

[2] Convolution

[3] Hough Transform

[4] Radon Transform

[5] Sorting( Merge, Selection, Quicksort, Heapsort )

[6] Dijkstra's Algorithm

Important Fundamental Data Structures:

[1] Lists, Queues, Stacks