FP Complete

Revolutionizing Haskell: FP Complete’s Innovative Solution to Memory Recycling for a Fortune 500 Pharmaceutical Company

We dramatically improved our client’s software-based medical device speed and scalability to produce rapid and efficient output.

How FP Complete Helped a Fortune 500 Company Overcome Their Scaling Challenge

A Fortune 500 Pharmaceutical Company was implementing a new software-based medical device, processing patient data and performing unusually detailed predictive modeling to improve the treatment of patients with a targeted disease. It chose to use Haskell as the programming language for it. The core technology was seen as a single pure mathematical function — patient data in, predictive analysis out. 

Unfortunately, despite their use of Haskell’s native parallel/multicore programming features, the performance was not improving as expected as more CPUs were added. So FP Complete was called in to investigate:

  • Why was the software not scaling appropriately on a single machine, and 
  • The possibility of scaling to larger (18 core) machines or even beyond a single machine to a cloud-based “compute cluster” of big servers.

Corporation Type

Fortune 500 Pharmaceutical Company

Industry

Software Based Medical Device

Project Type

High-Performance Computing, Big Compute

Business Issues

  • Client needed assistance with a new software-based medical device that used data and modeling to help treat patients diagnosed with a targeted disease. 
  • Client needed Haskell to perform the computation process on a larger scale.
  • Client needed expert help to diagnose and fix the processing issues.

Project Outcome

Significant Improvement of Software

Dramatically improved the program’s speed and scalability by building a framework to distribute the workload efficiently across multiple processes on multiple CPU cores and machines.

Project Outcome

Easy Deployment

To allow easy deployment, we included the “middleware” infrastructure supporting these improvements as part of FP Complete’s High-Performance Computing framework, allowing for easy deployment of the scaled-up device on Amazon’s AWS cloud computing platform.

Project Outcome

New Open-Source Resource

We created a resource in the serialization library called “store,” which improved the Haskell status quo by several orders of magnitude. Furthermore, with the customer’s permission, we released this library under an open-source license.

TECHNOLOGY USED

AWS Cloud, Redis, Haskell Programming

FP Complete’s Solution

  • FP Complete tackled the challenge of distributing Haskell computation by creating a platform that distributes workload across multiple single-threaded processes. 
  • To distribute work efficiently, we developed a design using a “primary-replica” system with the primary node outsourcing the processing work to replica nodes.
  • Our algorithm processed the data on the replica nodes and evolved them directly on the replicas without transferring them to the primary node.
  • Most importantly, all management was handled outside the core regulated code, i.e., the mathematical and modeling analysis function.

NEW CHALLENGES FOR FP COMPLETE

  • A significant bottleneck was converting Haskell objects to streams of bytes that could be transferred as a message. 
  • Changing the code and improving processing time wasn’t enough; our solution needed to be comprehensive to reduce future maintenance work for the customer.

The Conclusion

FP Complete assisted a client in overcoming scaling challenges by creating a platform that distributes Haskell computation across various processes. This solution enables the client to scale their operations without manual intervention. In addition, FP Complete’s expertise in developing custom solutions for complex problems makes them an ideal partner for businesses seeking innovative solutions.