Introduction to Opt-Server Hosting
Remote solver execution made easy
The main purpose of the PIFOP Optimization Server feature — or just Opt-server — is to provide a convenient, flexible and secure way for universities and companies to give users (e.g. students, researchers, engineers) remote access to solvers that are installed on their premises.
Hosting an optimization server allows you to centralize the solver execution in one or few machines, giving your users the ability to solve their optimization models from anywhere, inside or outside your premises. All that they need is a browser with internet connection to access pifop.com.
The above figure gives an overview of the system. Terminal commands entered by users of the PIFOP IDE are sent to the pifop.com central server, which in turn sends the commands to Opt-Servers. Opt-Servers executes the commands and send the output back to pifop.com, which forwards this output to the IDE users.
Each command line sent to Opt-Servers is executed within a sandbox of its own. The sandbox isolates the process running the command from the rest of the system, restricting what the proccess can do: what files it can read, where can it write to, how much memory it can consume, etc.
Suppose that you have a project at PIFOP with the following three files:
> ampl commands.run
What happens at My server when it receives that command?
First, it creates a directory containing all the files of your project as they appear to you at the PIFOP IDE, and a directory for writing temporary files. Then it creates a sandbox that can access some of the files and directories within the system. You as the optimization server manager has total control of what directories can be read and written, but in general the sandboxed file system will include:
- The directory containing the files of your project.
- The directory containing the command executable — in this example, the
- The directories containing the dynamic library dependencies of the executable.
- The directory created for temporary files.
The file system structure of the sandbox for our example would look something like this — directory names can vary:
/user-workspace/ (Project files) /cmd-executable/ (Executable) /lib64/ (Dependencies) /lib/x86_64-linux-gnu/ (Dependencies) /tmp/ (Temporary files)
With this file structure in place, the command line is executed from within the
Try it for free
When you subscribe to a plan with Opt-server hosting enabled you get a 7-day trial period.