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

Documents pareils