gptune / GPTune

Other
67 stars 19 forks source link

LITE Mode still looking for C library #19

Closed awil5504 closed 11 months ago

awil5504 commented 11 months ago

Hi,

I seem to be running into an issue in lite mode where despite having GPTUNE_LITE_MODE=1, and options['lite_mode'] = True GPTune looks for a compiled c library. I took a look at the lcm.py file and it looks for the lib_gptuneclcm library in the build directory (which I don't even have in this case since I've kept my lite and full installs separate). I've included the traceback for my error below.

I am running this on a slurm scheduler with the modules: module load SciPy-bundle/2021.10-foss-2021b module load netCDF-Fortran/4.5.3-gompi-2021b

where my objective fn in the tuner driver calls another driver that does a subprocess mpirun. I have tried running both gptune.SLA and gptune.MLA and get the same error. Happy to provide any more detail as needed

Andrew

File "/data/eart-tmm/sedm6691/GPTUNE_LITE/GPTune/examples/Sandbox/Bling_lite.py", line 186, in main() File "/data/eart-tmm/sedm6691/GPTUNE_LITE/GPTune/examples/Sandbox/Bling_lite.py", line 161, in main (data, modeler, stats) = gptune.SLA(NS=nrun, NS1=int(NS/2), Tgiven=giventask) File "/data/eart-tmm/sedm6691/GPTUNELITE/GPTune/GPTune/gptune.py", line 1024, in SLA (data, modeler, stats) = self.MLA(NS, NS1, 1, [Tgiven], T_sampleflag=[True], function_evaluations=None, s ource_function_evaluations=None, models_transfer=None, mfs=mfs) File "/data/eart-tmm/sedm6691/GPTUNELITE/GPTune/GPTune/gptune.py", line 932, in MLA modelers[o].train(data = tmpdata, kwargs) File "/data/eart-tmm/sedm6691/GPTUNE_LITE/GPTune/GPTune/model.py", line 430, in train return self.train_mpi(data, i_am_manager = True, restart_iters=list(range(kwargs['model_restarts'])), kw args) File "/data/eart-tmm/sedm6691/GPTUNE_LITE/GPTune/GPTune/model.py", line 435, in train_mpi from lcm import LCM File "/data/eart-tmm/sedm6691/GPTUNE_LITE/GPTune/GPTune/lcm.py", line 59, in raise Exception(f"Cannot find the lib_gptuneclcm library. Try to set env variable GPTUNE_INSTALL_PATH corr ectly.") Exception: Cannot find the lib_gptuneclcm library. Try to set env variable GPTUNE_INSTALL_PATH correctly.

liuyangzhuan commented 11 months ago

That's odd. Can you print out options before (data, modeler, stats) = gptune.SLA(NS=nrun, NS1=int(NS/2), Tgiven=giventask) and paste it here?

awil5504 commented 11 months ago

Sure!

options = Options() options['lite_mode'] = True

options.validate(computer) # See GPTune docs p.90/116 on PDF, seem to always use in examples

options['verbose'] = False
options['distributed_memory_parallelism'] = False
options['shared_memory_parallelism'] = False 
options['objective_evaluation_parallelism'] = False
awil5504 commented 11 months ago

Not sure what happened with formatting, but the options.validate(computer) is commented out in my code, everything else is active

liuyangzhuan commented 11 months ago

No, I'm asking you to do a print(options) before line (data, modeler, stats) = gptune.SLA(NS=nrun, NS1=int(NS/2), Tgiven=giventask) to see all the dictionary content of options.

But what you have just replied already revealed the problem. You need to call options.validate(computer=computer) before gt = GPTune(problem, computer=computer, data=data,... which will set options['model_class'] ='Model_GPy_LCM', in addition to a few other changes to make sure the c library is not used.

hrluo commented 11 months ago

Hi Andrew, Is your problem solved? Can you provide what Yang was suggesting?

awil5504 commented 11 months ago

Hi! Apologies for the delay, this solved the problem!