Skip to content

YAGNI: Delete unused MyMPILib code (NEO-2 is only user) #207

@krystophny

Description

@krystophny

Summary

Apply YAGNI principle to MyMPILib - NEO-2 is the ONLY downstream user, so all unused code should be deleted.

Immediate Deletion Candidates (No NEO-2 Dependencies)

Examples/ Directory - DELETE ENTIRELY

  • Examples/Allocate/main.f90
  • Examples/Gather/main.f90

Unused Internal Modules

  • Internal/wuMergeChunk_module.f90 - never used by NEO-2
  • Internal/matrix_module.f90 - demo/legacy matrix support
  • Internal/version.f90 - unused version string

Unused Tools Modules

  • Tools/commandline_parser_module.f90 - CLI parsing, unused
  • Tools/configFile_parser_module.f90 - config parsing, unused
  • Tools/myLog_module.f90 - logging utility, unused
  • Tools/mpelog_module.f90 - MPE profiling, unused
  • Tools/packableList_module.f90 - packable list, unused

Total: ~900 lines to delete

Keep (Actually Used by NEO-2)

Core Framework

  • Generic/scheduler_module.f90 - base scheduler (inherited by neo2scheduler)
  • Generic/workunit_module.f90 - base workunit
  • Generic/genericWorkunit_module.f90
  • Generic/initWorkunit_module.f90
  • Internal/wuMergeWorkunit_module.f90
  • Specific/mpiprovider_module.f90 - MPI singleton
  • Specific/packBuffer_module.f90
  • Internal/clientStatus_module.f90
  • Internal/wuDataRequester_module.f90
  • Internal/packable_module.f90

Used Tools

  • Tools/list_module.f90
  • Tools/intList_module.f90
  • Tools/wuList_module.f90

Internal Machinery (keep for now)

  • Dispatcher/Listener headers and bodies (12 files) - embedded in scheduler, would require significant refactoring to remove

Future Refactoring Candidates

The dispatcher/listener framework (~1,600 LOC) is internal scheduler machinery. NEO-2 never directly uses these types but they're wired into the base scheduler. Consider:

  1. Simplifying scheduler if NEO-2 doesn't need full load-balancing
  2. Extracting as optional features

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions