- .Net
- C#
- RabbitMQ
- MassTransit
About
The client is a global macroeconomic consultancy based in the United Kingdom, led by Martin Turner. The consultancy is supported by several economic and academic associates both in the UK and globally. Collaborating with academic partners, the consultancy strives to base its applied macroeconomic forecasts, analysis, and consultancy on rigorous academic principles.
Challenges
The consultancy relied on the Winsolve application to calculate economic forecasts. Winsolve, a 32-bit Windows program for solving nonlinear models, is an older desktop tool that can only process one calculation at a time. As the client's business grew, the need to process multiple calculations simultaneously became critical to meet increasing demands.
Solutions
Due to positive feedback from another UK client, the consultancy chose us to update and enhance their platform. We inherited the legacy Winsolve application and implemented a robust solution to address their needs.
Core Technologies:
- RabbitMQ: A scalable message queueing platform.
- Mass Transit: A lightweight message bus for creating distributed applications under .NET, using industry-standard messaging protocols.
We developed a job queue system based on .NET, RabbitMQ and Mass Transit technologies. This system allows running multiple instances of the Winsolve tool on two or more servers, leveraging the computing power of each machine. Our solution included the following enhancements:
- Adjusting the process priority level for each Winsolve process to speed up job throughput.
- Tying each instance of Winsolve to a specific processor core.
- Increasing the multi-threading capabilities of the Winsolve process.
Results
Our enhancements significantly improved the client's ability to process multiple calculations simultaneously, thus supporting their business growth. The updates enabled:
- Efficient job management with optimized resource allocation.
- Faster processing times through prioritized task handling.
- Enhanced multi-threading capabilities, maximizing the use of available computing resources.
Our ability to handle this complex development project demonstrated our expertise in software outsourcing services, delivering a robust and scalable solution that meets the client's evolving needs. The successful implementation of this project underscores our commitment to providing high-quality, reliable software development and consultancy services.