/GSoC.FLINT.Refactoring_Core_Code

Refactoring core code base of the FLINT software.

Primary LanguageC++Mozilla Public License 2.0MPL-2.0

Refactoring Core Code Base of FLINT

All Contributors

Full Lands Integration Tool (FLINT) is an open source, modular tool that estimates greenhouse gas (GHG) emissions from land by modeling the flux of greenhouse gas on millions (or even billions) of land parcels. The project idea is to refactor the code base of the core software tool FLINT to speed up its processing. The code has to be hyper efficient as every microsecond too much is repeated millions of times.

How to Get Involved?

moja global welcomes a wide range of contributions as explained in Contributing document and in the About moja-global Wiki.

How to Get Started with This project:

  • Install FLINT System.

  • Find bottlenecks and vulnerabilities in the code by using the Instrumentor(Benchmarking Tool).

  • How to use BenchMark tool:

     i) Usage: include this header file somewhere in your code.```(#include "moja/flint/ioperationmanager.h")```
    
    ii) Begin session:
       ``` MOJA_PROFILE_BEGIN_SESSION("cli_file_name.cli", "new_file_name.json"); ```   
    
    iii) Usage: 
               
               i) Inside a Function:
                  ``` MOJA_PROFILE_FUNCTION();``` //write this statement at starting of the function and will return the function run_time 
                  
               ii) Scope:
                   {
                      ``` MOJA_PROFILE_SCOPE("Scope_name");```  
                    //Rest of the code
                    }     // Place code like this in scopes you'd like to include in and it will return the Scope_Runtime
    
     iv) End Session:``` MOJA_PROFILE_END_SESSION()```;
    
    example:
         ``` MOJA_PROFILE_BEGIN_SESSION("moja.cli", "moja_trace.json");
              MOJA_PROFILE_FUNCTION();
             MOJA_PROFILE_END_SESSION()```
             
      v) Open the json file created in the Chrome Tracing: (chrome://tracing/)
    
    
  • Find the alternatives for the vulnerabilities found(may be any library) and try to test using the Moja BenchMark.

    Moja bench mark

# bootstrap
bootstrap-vcpkg.bat

# install packages
vcpkg.exe install poco:x64-windows fmt:x64-windows boost-format:x64-windows benchmark:x64-windows

# Create a build folder under the Source folder
git clone https://github.com/moja-global/GSoC.FLINT.Refactoring_Core_Code.git
cd source
cd moja-benchmark
git clone https://github.com/google/benchmark.git
git clone https://github.com/google/googletest.git benchmark/googletest
mkdir build
cd build

# now create the Visual Studio Solution (2019)
cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DCMAKE_TOOLCHAIN_FILE=c:\Development\moja-global\vcpkg\scripts\buildsystems\vcpkg.cmake ..
  • And Implement in the code of FLINT if founded the suitable Alternative.

Work Insights :

Blog and Insights of past work.

FAQ and Other Questions

Contributors

Thanks goes to these wonderful people (emoji key):


Mal

💻

Parth Arora

📆

This project follows the all-contributors specification. Contributions of any kind welcome!

Maintainers Reviewers Ambassadors Coaches

The following people are Maintainers Reviewers Ambassadors or Coaches


Mal

💻

Parth Arora

📆

Maintainers review and accept proposed changes
Reviewers check proposed changes before they go to the Maintainers
Ambassadors are available to provide training related to this repository
Coaches are available to provide information to new contributors to this repository