Reputation
Badges 1
147 × Eureka!clearml.utilities.pigar.main.GenerateReqs.extract_reqs
exactly what Iām talking about
this is where the āmagicā happens
is it possible to override this?
if you call Task.init in your entire repo (serve/train) you end up with "installed packages" section that contains all the required pacakges for both use cases ?
yes, and I thought that it is looking at what libraries are installed in virtualenv, but you explained that it rather doing a static analysis over whole repo.
ok, so if it goes over whole repository, then my question transforms into: how to make sure it will traverse only current package? I have separate packages for serving and training in a single repo. I donāt want serving requirements to be installed.
You have two options
I think both can work but too much of a hassle. I think Iāll skip extracting the common code and keep it duplicated for now
āTo have the Full pip freeze
as āinstalled packagesā - thatās exactly what Iām trying to prevent. Locally my virtualenv has all the dependencies for all the clearml tasks, which is fine because I donāt need to download and install them every time I launch a task. But remotely I want to keep the bare minimum needed for the concrete task. Which clearml successfully does, as long as I donāt import any local modules.
if you import a local package from a different local folder, and that folder is Not in the same repo
I am importing a module which is in the same folder as the main one (i.e. in the same package)
I donāt see these lines when requirement deducing from imports happen.
as I understand this: even though force=false, my script is importing another module from same project and thus triggering analyze_entire_repo
first analyze the entry point script, if it does not contain other to local files
do you want a fully reproducible example or just 2 scripts to illustrate?
example here: https://github.com/martjushev/clearml_requirements_demo
Maybe it makes sense to use schedule_function
instead of schedule_task_id
and then the schedule function will perform the cloning of the last task and starting the clone?
but we run everything in docker containers. Will it still help?
restart of clearml-server helped, as expected. Now we see all experiments (except for those that were written into task__trash during the ādark timesā)
and my problem occurred right after I tried to delete ~1.5K tasks from a single subproject
or somehow, we can centralize the storage of S3 credentials (i.e. on clearml-server) so that clients can access s3 through the server
I found this in the conf:# Default auto generated requirements optimize for smaller requirements # If True, analyze the entire repository regardless of the entry point. # If False, first analyze the entry point script, if it does not contain other to local files, # do not analyze the entire repository. force_analyze_entire_repo: false
yeah, I think Iāll go with schedule_function
right now, but your proposed idea would make it even clearer.
slightly related follow-up question: can I add user properties to a scheduler configuration?
and ClearML should strive to be clear, amirite? š
I see that scheduler task UI has the capabilities to edit user properties. But I donāt see how I can read and/or write them through code
ideally, I want to hardcode, e.g. use_staging = True, enqueue it; and then via clone-edit_user_properties-enqueue in UI start the second instance
I want to have 2 instances of scheduler - 1 starts reporting jobs for staging, another one for prod
not sure I fully get it. Where will the connection between task and scheduler appear?