jansel / opentuner

An extensible framework for program autotuning
http://opentuner.org/
MIT License
398 stars 116 forks source link

OpenTuner: Clarification on Required Command-Line Arguments #166

Open chimengqiaoyu opened 6 months ago

chimengqiaoyu commented 6 months ago

Hello,

I am currently using OpenTuner to optimize some configurations and encountered an issue related to command-line arguments. I'm trying to ensure that I have set up all the necessary command-line parameters that OpenTuner's main method requires, but I faced a TypeError related to missing command-line arguments, specifically parallel_compile.

While attempting to run my tuning script, I encountered the following error:

Traceback (most recent call last): File "tune.py", line 37, in MpiTuner.main(args) File "/path/to/opentuner/measurement/interface.py", line 300, in main return TuningRunMain(cls(args, *pargs, **kwargs), args).main() File "/path/to/opentuner/measurement/interface.py", line 63, in init self.parallel_compile = args.parallel_compile AttributeError: 'Namespace' object has no attribute 'parallel_compile'



This suggests that the `parallel_compile` argument is expected but was not provided.

#### Specific Questions
1. Could you please clarify which command-line arguments are mandatory for OpenTuner’s operation?
2. Is there a list or documentation available that details all required and optional command-line parameters for OpenTuner?
3. Additionally, is there a recommended approach for handling default values for these parameters to avoid such errors?

I attempted to define basic command-line parsing in my script to include this argument, but I am unsure if there are other parameters I might be missing and would appreciate guidance or a reference to the relevant part of the documentation.

Thank you for your help!

---
jansel commented 6 months ago

When you create your ArgumentParser, you should do

argparse.ArgumentParser(parents=opentuner.argparsers())

parents=opentuner.argparsers() will add all the needed OpenTuner args, including default values.

If you don't want the opentuner args on your own program's command line, you can create a separate ArgumentParser instance for opentuner and use the args=[...] option to parse_args.

For more see https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_args

chimengqiaoyu commented 6 months ago

I have resolved it, thank you very much!!!