Grid Computing
Business Problem: Our client needed to perform 1.7 million high-density ray-tracing calculations using an in-house application. We ran tests and estimated that on the fastest PC available, this would take approximately two years and nine months. The client needed it done in under six months in order to meet their schedule on a multi-million dollar project. They would have to run such calculations at least once a year for the next several years as part of ongoing support for their project.
Solution: We evaluated the client's assets and noted that they had a large number of highly underutilized computers: the desktops and laptops used for daily work by their employees. These computers were used mostly for reading email, browsing the web and creating documents using Microsoft Office. The average utilization was between 3 and 5 percent.
We implemented a distributed processing (a.k.a. grid processing) application to run the calculations on the desktops and laptops of the client's employees. The application runs on a server that distributes small chunks of data to each PC. The distributed client running on the PC processes the data and returns the results to the server. The data is processed only when the PC is otherwise idle, so it does not interfere with the employee's normal work. Since the PCs (especially the desktops) are left on 24 hours a day, 7 days a week, the distributed client normally gets 14-16 hours of uninterrupted time on each weekday and 24 hours each day of the weekend. This results in approximately 118 hours of processing time per PC per week.
The client was able to reduce the time required to perform the calculations from 2 years and 9 months to 3 weeks, a 98% savings.
Automation of Metrics
Business Problem: During the requirements gathering, we determined that our client needed to track the progress and performance of the Grid Computing application and be alerted quickly to any problems that developed during a data run.
Solution: We implemented a number of tools to generate metrics and quickly report any that crossed thresholds specified by the client. The metrics included:
Reports were generated automatically on a regular schedule and emailed to designated personnel.
- Average performance per PC
- Best performance per PC
- Number of data blocks not completed in the allotted time
- Number of PCs with no data block checked out