feat: enhance ADNLPModeler and ExaModeler with comprehensive options support#267
Merged
feat: enhance ADNLPModeler and ExaModeler with comprehensive options support#267
Conversation
- Complete documentation of all available options for both backends - Detailed analysis of current CTModels.jl implementation - Recommendations for enhancing ADNLPModeler and ExaModeler - Performance considerations and usage examples - Validation strategies and troubleshooting guide
Contributor
- Add comprehensive analysis of current ADNLPModeler and ExaModeler implementations - Design enhanced metadata with missing high-priority options - Implement complete validation functions for all options - Create extensive test suite with performance benchmarks - Provide practical examples and migration guide - Document performance impact and best practices Key enhancements: - ADNLPModeler: matrix_free, name, minimize options + validation - ExaModeler: auto_detect_gpu, gpu_preference, precision_mode - Comprehensive validation with helpful error messages - GPU auto-detection and backend selection - Performance recommendations based on problem characteristics All changes are backward compatible and ready for implementation.
Add matrix_free, name, minimize options to ADNLPModeler Add auto_detect_gpu, gpu_preference, precision_mode to ExaModeler Create validation module with comprehensive error checking Maintain 100% backward compatibility Add test suite for new functionality
- Remove duplicate validation.jl includes from modeler files - Fix import issues in test scripts - Add proper module imports for ADNLPModeler and ExaModeler - Validation now works correctly with proper error messages - All enhanced options are functional and tested
- Add 17 options (ADNLPModeler: 15, ExaModeler: 2) - Implement enriched validation with IncorrectArgument exceptions - Refactor ExaModeler architecture for consistency - Simplify code using Strategies.filter_options - Add comprehensive tests (63/63 passing) - Update documentation and reports
- Add explicit agent directives in architecture, testing, documentation, exceptions, performance, and type-stability rules - Ensure transparency when rules are applied with specific principle naming - Standardize format across all rule files - Improve visibility and traceability of code decisions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR enhances the
ADNLPModelerandExaModelerimplementations to provide comprehensive support for all available options in their respective backends (ADNLPModels.jl and ExaModels.jl).Background
Currently, CTModels.jl only exposes a limited subset of the available options:
show_timeandbackendoptionsbase_type,minimize, andbackendoptionsHowever, both backends support many more configuration options that could significantly improve performance, flexibility, and user experience.
What This PR Does
📋 Documentation
🔧 Planned Enhancements (follow-up PRs)
Based on the analysis, this documentation enables the following enhancements:
ADNLPModeler Improvements
matrix_freeoption for large-scale problemsnameoption for model identificationminimizeoption for optimization direction controlExaModeler Improvements
base_typePerformance Impact
The documented options can provide:
Next Steps
Files Changed
References