Hi Leon, HAS uses its own heuristic algorithm and solver to solve the placement problem, rather than use the Minizinc (CMSO is another such independent solver). The architecture of HAS and the related details can be found here: https://wiki.onap.org/pages/viewpage.action?pageId=16005528#HomingandAllocationService(HAS)-HASArchitecture(R2). There are a few key reasons as to why HAS uses a heuristic solver:
* The search space for the placement problem is quite large since new services can be constructed of existing service instances, and it is very expensive to pre-aggregate all the data needed prior to solving. This necessitates an incremental approach to solving the placement problem, which is what the current heuristic does. * Evaluating constraints like service and cloud capacity require expensive interactions with the controllers and multi-vim, and the corresponding state is highly dynamic which requires coupling the heuristic search with resource reservations and rollbacks. * Almost every network service and its VNFs/PNFs that needs to be placed has its own set of constraints and optimization objectives (which needs to be totally policy driven). It is challenging to come up with an optimization model to be used with a generic solver, that allows different sets of constraints and objectives to be selected during runtime. Please let me know if this makes sense. Thanks, Shankar. *--------------------------------------------------------------* *Shankaranarayanan Puzhavakath Narayanan* *Senior Inventive Scientist* *Network and Cloud Systems Research* *AT&T Labs Research* On Sun, Mar 31, 2019 at 2:53 PM Leon Jensen <[email protected]> wrote: > Thanks alot Shankaranarayana!! > > I understood the process to invoke minizinc. > > I was looking for minizinc reference in HAS repository and I was not able > to find use of minizinc in its solver. > So, It raises me another question, that HAS does not use minizinc to solve > placement problem, is there any specific reason ? > > Please correct if I am missing idea of OOF. > > -- > Regards, > Leon > > On Sun, Mar 31, 2019 at 8:34 PM Shankaranarayanan P N < > [email protected]> wrote: > >> Hi Leon, >> >> Although the use of Minizinc in OOF is applicable to many optimizations, >> I believe this would be easier to understand by looking at this through the >> lens of a specific use case - PCI optimization, which leverages the >> MiniZinc approach. This should give you more details on the use case >> itself. >> https://wiki.onap.org/display/DW/5G+-+OOF+%28ONAP+Optimization+Framework%29+and+PCI+%28Physical+Cell+ID%29+Optimization >> <https://wiki.onap.org/display/DW/5G+-+OOF+(ONAP+Optimization+Framework)+and+PCI+(Physical+Cell+ID)+Optimization> >> >> >> MiniZinc is invoked through the OSDF component in OOF, which hosts of the >> minizinc model for the PCI optimization. Please see the following >> architecture diagram that shows where OSDF sits within the OOF framework. >> >> >> https://wiki.onap.org/display/DW/OOF+Dublin+%28R4%29+Architecture+Alignment#OOFDublin(R4)ArchitectureAlignment-OOFDependencygraph >> <https://wiki.onap.org/display/DW/OOF+Dublin+(R4)+Architecture+Alignment#OOFDublin(R4)ArchitectureAlignment-OOFDependencygraph> >> >> >> Finally, here’s the relevant code that packages the data needed for the >> optimization and invokes Minizinc from within OSDF: >> >> >> https://gerrit.onap.org/r/gitweb?p=optf/osdf.git;a=blob;f=osdf/optimizers/pciopt/solver/optimizer.py;h=5a1a5c28ae5b2490de96c93eed4bb9bcc560da47;hb=HEAD >> >> and here’s the mini zinc model: >> https://gerrit.onap.org/r/gitweb?p=optf/osdf.git;a=blob;f=osdf/optimizers/pciopt/solver/min_confusion.mzn;h=ff56c181cc731c303d9bc52835d220f82d98074d;hb=HEAD >> >> >> Thanks, >> Shankar. >> *--------------------------------------------------------------* >> *Shankaranarayanan Puzhavakath Narayanan* >> *Senior Inventive Scientist* >> *Network and Cloud Systems Research* >> *AT&T Labs Research* >> >> >> On Thu, Mar 28, 2019 at 5:10 AM Leon Jensen <[email protected]> >> wrote: >> >>> Hello OOF team, >>> >>> I read in the wiki pages [0] that OSDF [1] used uses minizinc to solve >>> the problem, so I was traversing the code to understand how to invoke >>> minizinc to solve the problem and model the problem. >>> >>> I tried to find wiki to understand model formulation and solving it but >>> not able to get any helpful resource. So could someone please give me >>> overview of this entire process >>> - Model the problem >>> - Invoking the minizinc >>> - Exposing solution as rest endpoint >>> >>> I will appreciate your help. >>> >>> [0] >>> https://github.com/onap/optf-osdf/blob/master/docs/sections/architecture.rst >>> [1] https://github.com/onap/optf-osdf >>> -- >>> Regards, >>> Leon Jensen >>> >>> >>> -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#16421): https://lists.onap.org/g/onap-discuss/message/16421 Mute This Topic: https://lists.onap.org/mt/30809564/21656 Group Owner: [email protected] Unsubscribe: https://lists.onap.org/g/onap-discuss/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
