Development of Sea Ice Applications using GPGPU (July, 2015 - July, 2017)
C-CORE is engaged in understanding the iceberg design loads and sea ice forecasting needs of the energy sector. As the energy industry ventures into oceans with greater ice cover and more icebergs, , there is a significant need for engineering tools to plan and manage operations in exploration, production, and safety. In response to industry demand over the years, C-CORE has developed several algorithms for simulating iceberg and sea ice loads. Industry often requires multiple scenarios for their risk assessments, and existing simulations are computationally and time intensive. The project will support investigation of the utility of a General Purpose Computing on Graphics Processing Units (GPGPU) approach with a Compute Unified Device Architecture (CUDA) programming toolkit to develop efficient sea ice applications such as iceberg design load and sea ice forecasting. The project goal is to significantly reduce the time required for each simulation. With the required reduced simulation time, offshore companies will be able to run more simulations and further reduce the risk in offshore structure design and operations in ice covered water. This project also aims to increase R&D capacity in energy research at C-CORE through collaboration with local researchers, publications, and the training of highly qualified personnel (HQP).
Together with Dr. Dennis K. Peters and Dr. Claude Daley, we have investigated the possibility of using General Purpose Computing on Graphics Processing Units (GPGPU) approach with a Compute Unified Device Architecture (CUDA) programming toolkit develop fast algorithms which can simulate the ice-interactions in a very short time. It can be also used to develop tools give the users the ability to analyze ice interactions for the purpose of developing ice-structure models. This research was done as a part of STePS2(Sustainable Technology for Polar Ships & Structures) Project.
Together with Dr. Dennis K. Peters, we have worked on Test Driven Development(TDD). In TDD, the test code is a formal documentation of the required behaviour of the component or system being developed, but
this documentation is necessarily incomplete and often over-specific. An alternative approach to TDD is to write a complete specification of the required
behaviour in a formal notation and to generate test cases and oracles from that specification.
In our research we have developed tools in support of this approach that allow formal specifications to be written in a readable manner that is tightly integrated with the code through an integrated development environment, and test oracles and test cases to be generated automatically. The generated test code integrates smoothly with test frameworks (e.g., JUnit) and so can be directly used in TDD. This approach has the advantage that the specifications can be complete and appropriately abstract but still support TDD.