Challenge Overview
Challenge Overview
Wellcat application is written by Fortran and C++, it has opportunities for parallel processing. It has many algorithms as executables and the marshaling of data between these executables is using flat files. The objective is to identify the hotspots of the existing code and seek other opportunities for improvement.
Technology Stack
-
Windows programming
-
C++
-
Fortran 95
Development environment
The codebase is proprietary and only allowed to be accessed within the VM, you are NOT allowed to copy it elsewhere, including to your local machine.
Every competitor will have an exclusive account for access to the VM. The VM is running Windows Server 2019, you will need to use RDP (Remote Desktop) to connect to the VM.
The VM address and the account will be shared with each of you privately.
The development environment is
-
Visual Studio 2013 professional
-
Intel Visual Fortran 2015.4.221
These tools have been installed in the VM.
Once you logged in to the VM, please find the code in C:\Users\Public\Workspace\performance-optimization, copy it to your own home directory, e.g., C:\Users\<your-username>\Workspace\performance-optimization
You can follow the instructions in the README.md to deploy and run the code.
Requirement
The optimization should be focused on the WTP engine (the code is at performance-optimization) of the Wellcat application, which is a Fortran based implementation; it also contains a couple of C++ wrappers, but the main optimization should be applied to Fortran.
In this challenge, you need to run the code, and identify the hotspots (the code snippets that cause performance decay) and propose the way of optimization.
You need to prepare a document that lists the location of all these hotspots, for each hotspot, you need to explain detailedly why it caused performance decay, and how you will optimize it.
You need to implement one or two optimizations to prove your proposal.
In the document, you also need to share the performance profiling result before and after applying the optimization, the comparison should reflect that the performance is improved significantly after applying the optimization.
Please ensure the document includes enough details so that the reviewers and other developers can reproduce the way of your optimization.
Note
The review will be performed by the copilot/PM & the client subjectively, there will be no appeal/appeal response phase.
Final Submission Guidelines
Submit a zip archive, including
-
The document (in docx, PDF or Markdown format) that includes the all the required details
-
A text file that includes your username of the VM.