{"id":5495,"date":"2025-02-26T11:01:33","date_gmt":"2025-02-26T10:01:33","guid":{"rendered":"https:\/\/spgoo.org\/?page_id=5495"},"modified":"2025-03-20T18:05:32","modified_gmt":"2025-03-20T17:05:32","slug":"rcaws","status":"publish","type":"page","link":"https:\/\/spgoo.org\/?page_id=5495","title":{"rendered":"RCaWS"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">RCaWS : Ressources de Calculs accessibles par Web Service<\/h2>\n\n\n\n<p>Projet exploratoire d&#8217;interfa\u00e7age entre plateformes Web et  ressources de calculs mutualis\u00e9es type Cascimodot (cluster sous Slurm).<\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-color has-text-color has-link-color has-medium-font-size wp-elements-503c092aa9c3ee154783fd126c6932cf\">Objectifs<\/p>\n\n\n\n<p>Dans le cadre de nos d\u00e9veloppements sur les plateformes Web Emolgine et IAML, nous avons souvent besoin de d\u00e9porter des traitements &#8220;lourds&#8221; sur des ressources de calculs adapt\u00e9es telles que des clusters ou des orchestrateurs. Pour cela, nous souhaitons r\u00e9alis\u00e9 ce d\u00e9port en mode asynchrone sur des files d&#8217;attente appropri\u00e9es. Plusieurs types de probl\u00e8me se posent alors dans cette relation frontal &#8211; ressources mutualis\u00e9es :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>probl\u00e8mes de s\u00e9curit\u00e9 <\/li>\n\n\n\n<li>probl\u00e8mes d&#8217;\u00e9change entre les deux environnements<\/li>\n<\/ul>\n\n\n\n<p>Nous allons proc\u00e9der par \u00e9tapes. Dans un premier temps nous caract\u00e9riserons les diff\u00e9rents probl\u00e8mes \u00e0 r\u00e9soudre et envisagerons ensuite comment proc\u00e9der pour exp\u00e9rimenter une solution r\u00e9pondant \u00e0 toutes les exigences. Ensuite nous explorerons l&#8217;\u00e9tat de l&#8217;art dans ce domaine et regarderont attentivement ce qui se fait du c\u00f4t\u00e9 des MLOPS et si possible profiter du retour d&#8217;exp\u00e9rience des coll\u00e8gues du CC-IN2P3.<\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-color has-text-color has-link-color has-medium-font-size wp-elements-b126ecfc289bd47483bade4f6d5fd2d0\">Notion de s\u00e9curit\u00e9 : <\/p>\n\n\n\n<p>L&#8217;acc\u00e8s au frontal se fera via https et avec authentification locale ou par f\u00e9d\u00e9ration. Cela implique une solution certifi\u00e9e et accept\u00e9e par l&#8217;institution.<\/p>\n\n\n\n<p>L&#8217;acc\u00e8s aux ressources de calculs<strong> ne pourra en aucun \u00eatre fait directement par l&#8217;utilisateur<\/strong>. Celui-ci soumettra une requ\u00eate via l&#8217;interface web et la soumission se fera en mode asynchrone via un web service appari\u00e9 (token) au frontal. C&#8217;est le web service qui ira poster dans une liste de soumission  la demande de l&#8217;utilisateur (kafka ou autre solutions de MOM).<\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-color has-text-color has-link-color has-medium-font-size wp-elements-27712fe0454b9b21174ef483f8dc6e7e\">Echange entre les diff\u00e9rents contexte : <\/p>\n\n\n\n<p><strong>Demande et Data associ\u00e9es<\/strong> : les \u00e9changes entre le frontal et les RC se feront via un web service. L&#8217;acc\u00e8s au WS sera conditionn\u00e9 par token (jwt) pour garantir l&#8217;exclusivit\u00e9 des acc\u00e8s aux frontaux autoris\u00e9s. Dans le cas de donn\u00e9es volumineuses diff\u00e9rentes solutions seront propos\u00e9es : soit un transfert direct sur un espace appropri\u00e9 associ\u00e9 au WS, soit un d\u00e9p\u00f4t sur un site tiers avec transfert de l&#8217;URL et de l&#8217;autorisation associ\u00e9 (donn\u00e9es sensibles).<\/p>\n\n\n\n<p><strong>Solveurs<\/strong> : les solveurs seront  encapsul\u00e9s dans une image afin de garantir leur int\u00e9grit\u00e9 et fournir les d\u00e9pendances associ\u00e9es. Des circuits de validation de ces images seront \u00e0 pr\u00e9voir dans le contexte cible. Les images seront d\u00e9pos\u00e9es via un circuit interne sur un d\u00e9p\u00f4t certifi\u00e9, associ\u00e9 aux clusters. Les solveurs peuvent \u00e9voluer. le syst\u00e8me doit permettre de cumuler plusieurs versions d&#8217;un m\u00eame solveur et de d\u00e9terminer ceux \u00e0 utiliser.<\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-color has-text-color has-link-color has-medium-font-size wp-elements-efaccd8e6384802b78e7ea7e70e979a8\">Prototypage : <\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-text-color has-link-color wp-elements-a2c5a7ccc6dabae116076893a51eb1aa\">Contexte d&#8217;EMOLGINE <\/p>\n\n\n\n<p>Nous souhaitons g\u00e9n\u00e9rer des mol\u00e9cules sp\u00e9cifiques \u00e0 un site d&#8217;une prot\u00e9ine \u00e0 l&#8217;aide d&#8217;un algorithme de &#8220;growing&#8221; et ce \u00e0 partir de diff\u00e9rents fragments. Pour ce faire , l&#8217;utilisateur doit pouvoir s\u00e9lectionner une prot\u00e9ine et d\u00e9finir le site \u00e0 partir d&#8217;une interface web. Apr\u00e8s \u00e9ventuellement la modification de certains param\u00e8tres propos\u00e9s par d\u00e9faut, il devra pouvoir soumettre un growing sur les ressources calculs. Pour cela, le traitement de growing sera pr\u00e9alablement encapsul\u00e9 dans une image. Le r\u00e9sultat de ce calcul sera ensuite directement d\u00e9pos\u00e9 dans un espace d\u00e9di\u00e9 pour \u00eatre ajout\u00e9 \u00e0 la base de donn\u00e9es <span class='tooltipsall tooltipsincontent classtoolTips5'>Neo4J<\/span> de la plateforme. <br>Param\u00e8tres \u00e0 d\u00e9finir \u00e0 l&#8217;aide de l&#8217;interface web:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Les points qui d\u00e9finissent le centre du site<\/li>\n<\/ul>\n\n\n\n<p>Param\u00e8tres par d\u00e9faut pouvant \u00eatre modifi\u00e9s:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>La distance max des points qui d\u00e9finissent le centre du site.<\/li>\n\n\n\n<li>Le nombre d&#8217;it\u00e9ration (le nombre de fois o\u00f9 on va ajouter des fragments aux mol\u00e9cules g\u00e9n\u00e9r\u00e9es)<\/li>\n\n\n\n<li>Le nombre max de d\u00e9part de growing sur une nouvelle mol\u00e9cule (d\u00e9faut: 2)<\/li>\n\n\n\n<li>Le nombre max de mol\u00e9cules g\u00e9n\u00e9r\u00e9es \u00e0 partir d&#8217;une mol\u00e9cule<\/li>\n\n\n\n<li>La valeur max de l&#8217;efficiency pour s\u00e9lectionner les mol\u00e9cules pouvant passer \u00e0 l&#8217;it\u00e9ration suivante<\/li>\n\n\n\n<li>Le nombre de fragments utilis\u00e9s pour faire le growing<\/li>\n\n\n\n<li>Le nombre de fragments utilis\u00e9s comme point de d\u00e9part du growing<\/li>\n\n\n\n<li>Le nombre max de possibilit\u00e9s de d\u00e9part \u00e0 partir d&#8217;un atome<\/li>\n<\/ul>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-text-color has-link-color wp-elements-77ea484c2b89926598db2147bce13518\">Contexte IAML : <\/p>\n\n\n\n<p>Dans le cadre de la plateforme IAML, la probl\u00e9matique sera plus complexe due au volume des donn\u00e9es \u00e0 d\u00e9placer pour le traitement. Pour cela des dispositifs classiques de upload dans des structures de base de donn\u00e9es de type NOSQL seront utilis\u00e9s. Pour les traitements, il faudra envisager des encapsulations automatiques des solveurs pour qu&#8217;ils soient ex\u00e9cut\u00e9s suite \u00e0 une demande de soumission.<\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-color has-text-color has-link-color has-medium-font-size wp-elements-f857f7ce9de952c4b85eafe2e415146c\">Encapsulation : <\/p>\n\n\n\n<p>Deux solutions d&#8217;encapsulation seront \u00e9tudi\u00e9es Podman et Singularity. Dans ces encapsulations il faudra pouvoir ex\u00e9cuter du code sur CPU ou GPU.<\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-color has-text-color has-link-color has-medium-font-size wp-elements-1e89684cfe9f997a1ac2abd208ebd366\">Deux m\u00e9thodes de mises en oeuvre :<\/p>\n\n\n\n<p>Orchestrateur de type K8S : besoin d&#8217;une station de travail avec 4 VMs. Au sein de SPGoO on dispose d&#8217;un cluster K8S en version 1.30 disponible ainsi qu&#8217;un serveur de d\u00e9p\u00f4t pour les images &#8230;<\/p>\n\n\n\n<p>Cluster &#8212; Slurm : \u00e0 mettre en oeuvre.<\/p>\n\n\n\n<p>Architecture de tests de la proposition : <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"566\" src=\"https:\/\/spgoo.org\/wp-content\/uploads\/2025\/03\/RCWS_emolgine-1024x566.jpg\" alt=\"\" class=\"wp-image-5906\" srcset=\"https:\/\/spgoo.org\/wp-content\/uploads\/2025\/03\/RCWS_emolgine-1024x566.jpg 1024w, https:\/\/spgoo.org\/wp-content\/uploads\/2025\/03\/RCWS_emolgine-300x166.jpg 300w, https:\/\/spgoo.org\/wp-content\/uploads\/2025\/03\/RCWS_emolgine-768x425.jpg 768w, https:\/\/spgoo.org\/wp-content\/uploads\/2025\/03\/RCWS_emolgine.jpg 1231w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><script type=\"text\/javascript\"> toolTips('.classtoolTips5','<a style=\"text-decoration: none;\" href=\"https:\/\/neo4j.com\/\"><img style=\"width: 180px; height: 50px;\" src=\"\/wp-content\/uploads\/2025\/01\/Neo4j-logo_color.png\" \/><\/a>'); <\/script>","protected":false},"excerpt":{"rendered":"<p>RCaWS : Ressources de Calculs accessibles par Web Service Projet exploratoire d&#8217;interfa\u00e7age entre plateformes Web et ressources de calculs mutualis\u00e9es type Cascimodot (cluster sous Slurm). Objectifs Dans le cadre de nos d\u00e9veloppements sur les plateformes Web Emolgine et IAML, nous avons souvent besoin de d\u00e9porter des traitements &#8220;lourds&#8221; sur des ressources de calculs adapt\u00e9es telles [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-5495","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/pages\/5495","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/spgoo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5495"}],"version-history":[{"count":38,"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/pages\/5495\/revisions"}],"predecessor-version":[{"id":5909,"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/pages\/5495\/revisions\/5909"}],"wp:attachment":[{"href":"https:\/\/spgoo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}