hexagon logo

Running Aview in Batch Mode On Headless Machine

I'm working with a heavily parameterized (lots of design variables) model and am trying to generate the adm/acf input files for a Monte Carlo through Adams Insight. Unfortunately the process of writing out the adm/acf input files for every Monte Carlo case (not even running the simulation) takes many hours (I suspect due to the number of design variables in the model). I was hoping to submit this process to our compute cluster to speed things up, but that system has no displays present.
 
With previous versions of Adams I was able to run aview in batch mode on a headless machine by connecting to a dummy Xvfb display (en.wikipedia.org/.../Xvfb), but Adams 2019.2 just throws these errors when I follow the same process (ip address replaced with XX.XXX.X.XX).
 
Tue Dec 15 12:46:02 2020 ERROR! pid[10285] failed to connect DS server.
Tue Dec 15 12:46:02 2020 ERROR! pid[10285] Failed to connect to DSServer, DS address="XX.XXX.X.XX".
Tue Dec 15 12:46:02 2020 SCA.SCASystemException - Failed to connect to DSServer, DS address="XX.XXX.X.XX". (ID=2028000000)
SCA.SCASystemException - Failed to connect to DSServer, DS address="XX.XXX.X.XX". (ID=2028000000)
 
Has anyone had any luck running recent version of aview headless? I have no issues running solver on the headless compute cluster but unfortunately the adm/acf generation process must be run inside aview.
Parents
  • How about using Python code ?
    I had done a benchmark exemple by setting 10000 parameter variables in a loop and doing the very same thing in Python gave me a speedup of about factor 350.
     
    Code was like
    for var = .acar.index start = 1 end = 10000
     variable set variable_name=.acar.somevar real_value=10.99
    end
     
    or in python:
    import aview_main
    i=0
    while i < 10000:
     myCmd = "variable set variable_name=.acar.somevar real_value=%s" % 10.999
     aview_main.execute_cmd(myCmd)
     i+=1
     
    If that works for you, it'd speed up your local file creation and you could get away without the batch issues on the cluster ?
     
    Even if you're on the cluster you may start with mdi -c python xxx.py and avoid the batch mode. Maybe it'll work without those graphical issues ?
     
Reply
  • How about using Python code ?
    I had done a benchmark exemple by setting 10000 parameter variables in a loop and doing the very same thing in Python gave me a speedup of about factor 350.
     
    Code was like
    for var = .acar.index start = 1 end = 10000
     variable set variable_name=.acar.somevar real_value=10.99
    end
     
    or in python:
    import aview_main
    i=0
    while i < 10000:
     myCmd = "variable set variable_name=.acar.somevar real_value=%s" % 10.999
     aview_main.execute_cmd(myCmd)
     i+=1
     
    If that works for you, it'd speed up your local file creation and you could get away without the batch issues on the cluster ?
     
    Even if you're on the cluster you may start with mdi -c python xxx.py and avoid the batch mode. Maybe it'll work without those graphical issues ?
     
Children
No Data