Testpresentation CeBIT 2007
Transcription
Testpresentation CeBIT 2007
Répartition du Traitement Nicolas Vouhé ABBYY France Juin 2011 Agenda z Objectifs et prérequis z Reconnaissance Parallèle en utilisant FineReader Engine 8.1. z “Scalabilité” intégrée dans FineReader Engine 9.0 z FineReader Engine 10 – L’étape d’après! z Questions et Réponses ABBYY FR 10 - Paris 2011 Aspects des Performances & Scalabilité Gros volume de documents et une haute qualité de reconnaissancé nécessaire? Qualité vs. Performance? Pourquoi pas les 2? Qualité de FR Engine & Traitement Parallèle ABBYY FR 10 - Paris 2011 Tendance des Multi-Processeurs Intel et AMD Famille de Processeur Date de Lancement Nombre de Coeurs Duo Core™ Janvier 2006 2 Quad Core™ Janvier 2007 4 Core™ i7-980X Mars 2010 6 Xeon (Serveur) Mars 2010 8 Famille de Processeur Athlon 64 X2™ Date de Lancement Mai 2005 Quad-Core Opteron™ Septembre 2007 Nombre de Coeurs 2 4 Mars 2010 6 Opteron™ (Serveur) Mars 2010 12 Six-Core Opteron™ ABBYY FR 10 - Paris 2011 Cluster Computing ABBYY FR 10 - Paris 2011 Reconnaissance Parallèle en utilisant FineReader Engine 8.1 z FR Engine 8.x : Pas de gestion multi-coeurs “out of the box“ Lancé en 2005, il n’existait pas de CPUs double-coeur z L’objet Engine est un singleton, n’est pas thread safe et ne peut pas être créé dans différents threads du même process z Solution: Distribuer la charge de travail entre des processes parallèles ABBYY FR 10 - Paris 2011 Un Scenario Typique z Images output folder MIMD architecture z Multiple Instruction stream, Multiple Data stream est une technique enmployée pour faire du traitement parallèle Engine process images Engine process images Coordinator process Image source (normally hot folder) ABBYY FR 10 - Paris 2011 ... Engine process images FR Engine pour Linux Confirmation Process #1 Application Client Requête Process #2 Daemon Application Client Requête Process #3 … Process #N Confirmation ABBYY FR 10 - Paris 2011 Scalabilité de Recognition Server ABBYY FR 10 - Paris 2011 Nombre de coeurs et processes utilisés Temps de Traitement Vitesse (pages par minute) Productivité 1 coeur, 2 processes 75.65 min 6.6 ppm 1x 2 coeur, 3 processes 37.72 min 13.2 ppm 2x 4 coeur, 5 processes 19.08 min 26.2 ppm 3.97x 6 coeur, 7 processes 13.00 min 38.5 ppm 5.83x 7 coeur, 8 processes 11.18 min 44.7 ppm 6.77x 8 coeur, 8 processes 10.15 min 49.3 ppm 7.47x FineReader Engine 9.0 Nouvelle Fonctionnalité pour la scalabilité Engine 9 can scale this part on different computer cores Ouverture d’un document Multi-pages ABBYY FR 10 - Paris 2011 Analyse du layout et reconnaissance Export des résultats de reconnaissance FineReader Engine 9.0 Méthode de Traitement Parallèle Analyse et Reconnaissance Document source ABBYY FR 10 - Paris 2011 Page 1 Process #1 Page 2 Process #2 Page 3 Process #3 … … Page N Process #N Document Reonnu FineReader Engine 9.0 Nouvelle API engine.MultiProcessingMode = FREngine.MultiProcessingModeEnum.MPM_Parallel; engine.RecognitionProcessesCount = 2; // Create document from image file displayMessage( "Loading image..." ); string imagePath = FreConfig.GetSamplesFolder() + @"\SampleImages\Demo.tif"; FREngine.FRDocument document = engine.CreateFRDocumentFromImage( imagePath, null ); //Recognize document displayMessage( "Recognizing..." ); document.Process( null, null, null ); // Save results displayMessage( "Saving results..." ); document.Export( FreConfig.GetSamplesFolder() + @"\SampleImages\Demo.rtf", FREngine.FileExportFormatEnum.FEF_RTF, null ); ABBYY FR 10 - Paris 2011 FineReader Engine 9.0 Test de Performance ABBYY FR 10 - Paris 2011 FineReader Engine 9.0/10 Exemple de Reconnaissance Multi-Processeur ABBYY FR 10 - Paris 2011 Scalabilité de FineReader Engine 9.0 Forces et Points faibles z Forces z z z Scalabilité efficace sur les machines multi-coeurs Pas de développement supplémentaire nécessaire Faiblesses z z z FR Engine 9 effectue l’analyse et la reconnaissance sur le même PC FineReader Engine n’a pas de Ressources Cluster comme Recognition Server L’efficacité diminue significativement dans le cas de traitement de documents simplepage ou de documents avec un faible nombre de pages ABBYY FR 10 - Paris 2011 FineReader Engine 10 L’étape Suivante! z z Hérite de la scalabilité de FR Engine 9 Nouvelle extension API (Frengine 10 R2) qui autorise le traitement de documents simple-page avec haute scalabilité comme suivant:: Ouverture d’une ensemble de documents simplepage ABBYY FR 10 - Paris 2011 Les pages sont ajoutées à un lot de traitment Les pages sont distribuées entre les différents coeurs de CPU pour l’analyse de Layout et la reconnaissance Les pages traitées sont sauvegardées et prêtes pour l’export Traitement Multi-Coeurdnas FineReader Engine 10 (exemple de code) private void processSinglePagesWithMultithreading() { loadEngine(); FREngine.IFRDocument document = engine.CreateFRDocument(); FREngine.IBatchProcessor processor = engine.CreateBatchProcessor(); ImageSourceImplementation imageSource = new ImageSourceImplementation(); processor.SetCustomImageSource(imageSource); processor.Process(pageProcessingParams, synthesisParamsForPage); while (true) { FREngine.IFRPage page = null; string sourceFileName = string.Empty; int pageIndex = int.MinValue; processor.GetNextPage(out page, out sourceFileName, out pageIndex); if (page == null) break; // Do something with recognized page // document.AddPage(page); } //document.Synthesize(synthesysParamsForDocument); //document.Export("FileName.pdf", FREngine.FileExportFormatEnum.FEF_PDF, null); unloadEngine(); } ABBYY FR 10 - Paris 2011 Résumé z FR Engine 8.1 – implémentation d’un propre système de parallélisme nécessaire. z FR Engine 9 – Autorise la reconnaissance en parallèle pour les documents multi-pages sur des ordinateurs ayant plusieurs coeurs de processeur. z FR Engine 10 - équivalent à FREngine 9, mais permet également le traitement de documents simple-page en parallèle z Recognition Server – permet la distribution des traitements OCR non seulement sur un ordinateur unique, mais également sur plusieurs ordinateurs et clusters. Avec le format de fichier interne à FineReader Engine, les résultats de reconnaissance peuvent être utilisés dans des applications tierces. ABBYY FR 10 - Paris 2011 Des questions? Merci pour votre attention! ABBYY FR 10 - Paris 2011