Logiciel

Je prends le développement du logiciel sérieusement. On peut trouver la plupart de mes contributions logicielles sur GitHub.

Contributions choisies:

  • fast_float: lecture des nombres à virgule flottante 4 fois plus rapidement que les fonctions conventionnels (strtod).
  • simdjson: le premier parseur JSON capable d’atteindre des vitesses de plusieurs gigaoctets par seconde, avec validation complète en utilisant un seul coeur.
  • Les bitmaps Roaring ont été largement adoptés : Google Procella (base de données de YouTube), Apache Lucene, Solr, Elasticsearch, Metamarkets’ Druid, Apache Spark, Apache Hive, Apache Tez, Apache CarbonData, Netflix Atlas, LinkedIn Pinot, Pilosa, Microsoft Visual Studio Team Services (VSTS), eBay’s Apache Kylin, et ainsi de suite.
  • JavaFastPFOR et FastPFor font partie de Terrier, Apache Parquet, Apache Lucene, et Apache NiFi. Des entreprises comme Quantcast et Seek ont choisi les bitmaps Roaring pour accélérer leurs opérations.
  • EWAHBoolArray et JavaEWAH ont été intégrés dans Git (GitHub), jGit, Apache Hive, et ainsi de suite. JavaEWAH fait partie des distributions Linux populaires comme Ubuntu et RedHat. Les ingénieurs de GitHub ont écrit une série d’articles sur leur application des bitmaps EWAH afin d’accélérer le traitement du code. La documentation de Git traite du format EWAH.

Certains des billets de mon blogue ont mené à des améliorations au sein de logiciel bien connu.

Plusieurs de nos articles scientifiques ont aussi eu un effet notable.

Publications récentes

Vous pouvez trouver mes travaux sur arXiv, sur Google Scholar, sur DBLP, sur le portail ACM, sur R Libre et ailleurs.

  • Efficient Computation of Positional Population Counts Using SIMD Instructions
    Concurrency and Computation: Practice and Experience (to appear)

    Renseignements PDF (arXiv)

  • Number Parsing at a Gigabyte per Second
    Software: Practice and Experience 51 (8), 2021

    Renseignements PDF (arXiv) Code

  • Validating UTF-8 In Less Than One Instruction Per Byte
    Software: Practice and Experience 51 (5), 2021

    Renseignements PDF (arXiv) Code

  • Integer Division by Constants: Optimal Bounds
    Heliyion (to appear)

    Renseignements PDF (arXiv)

  • Xor Filters: Faster and Smaller Than Bloom and Cuckoo Filters
    Journal of Experimental Algorithmics 25 (1), 2020

    Renseignements PDF (arXiv) Code

  • Base64 encoding and decoding at almost the speed of a memory copy
    Software: Practice and Experience 50 (2), 2020

    Renseignements PDF (arXiv) Code

  • Parsing Gigabytes of JSON per Second
    VLDB Journal 28 (6), 2019

    Renseignements PDF (arXiv) Code

  • Fast Random Integer Generation in an Interval
    ACM Transactions on Modeling and Computer Simulation 29 (1), 2019

    Renseignements PDF (arXiv) Vidéo Code

  • Faster Remainder by Direct Computation: Applications to Compilers and Software Libraries
    Software: Practice and Experience 49 (6), 2019

    Renseignements PDF (arXiv) Code

  • Xorshift1024*, Xorshift1024+, Xorshift128+ and Xoroshiro128+ Fail Statistical Tests for Linearity
    Computational and Applied Mathematics 350, 2019

    Renseignements PDF (arXiv) Code

  • Faster Base64 Encoding and Decoding using AVX2 Instructions
    ACM Transactions on the Web 12 (3), 2018

    Renseignements PDF (arXiv) Code

  • Roaring Bitmaps: Implementation of an Optimized Software Library
    Software: Practice and Experience 48 (4), 2018

    Renseignements PDF (arXiv) Code

  • Apache Calcite: A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources
    SIGMOD’18, 2018

    Renseignements PDF (arXiv) Code

  • Faster Population Counts Using AVX2 Instructions
    Computer Journal 61 (1), 2018

    Renseignements PDF (arXiv) Code

  • On Desirable Semantics of Functional Dependencies over Databases with Incomplete Information
    Fundamenta Informaticae 158 (4), 2018

    Renseignements PDF (arXiv)

  • Stream VByte: Faster Byte-Oriented Integer Compression
    Information Processing Letters 130, 2018

    Renseignements PDF (arXiv) Code

  • Efficient Integer-Key Compression in a Key-Value Store using SIMD Instructions
    Information Systems 66, 2017

    Renseignements PDF (arXiv) Code

  • Regular and almost universal hashing: an efficient implementation
    Software: Practice and Experience 47 (10), 2017

    Renseignements PDF (arXiv) Code

  • Better bitmap performance with Roaring bitmaps
    Software: Practice and Experience 46 (5), 2016

    Renseignements PDF (arXiv) Diapositives Code Projet

  • Compressed bitmap indexes: beyond unions and intersections
    Software: Practice and Experience 46 (2), 2016

    Renseignements PDF (arXiv) Code

  • Consistently faster and smaller compressed bitmaps with Roaring
    Software: Practice and Experience 46 (11), 2016

    Renseignements PDF (arXiv) Diapositives Code Projet

  • Faster 64-bit universal hashing using carry-less multiplications
    Journal of Cryptographic Engineering 6(3), 2016

    Renseignements PDF (arXiv) Code

  • SIMD Compression and the Intersection of Sorted Integers
    Software: Practice and Experience 46 (6), 2016

    Renseignements PDF (arXiv) Diapositives Code

  • A General SIMD-based Approach to Accelerating Compression Algorithms
    ACM Transactions on Information Systems 33 (3), 2015

    Renseignements PDF (arXiv)

  • Decoding billions of integers per second through vectorization
    Software: Practice & Experience 45 (1), 2015

    Renseignements PDF (arXiv) Diapositives Code

  • Functional dependencies with null markers
    Computer Journal 58 (5), 2015

    Renseignements PDF (arXiv)

  • Measuring academic influence: Not all citations are equal
    Journal of the Association for Information Science and Technology 66 (2), 2015

    Renseignements PDF (arXiv) Jeu de données

  • Multidimensional Bloom Filters
    Information Systems (54), 2015

    Renseignements PDF (arXiv) Code

  • Vectorized VByte Decoding
    International Symposium on Web Algorithms 2015, 2015

    Renseignements PDF (arXiv) Diapositives Code

  • Strongly universal string hashing is fast
    Computer Journal 57 (11), 2014

    Renseignements PDF (arXiv) Code

  • Diamond Dicing
    Data & Knowledge Engineering 86, 2013

    Renseignements PDF (arXiv)

  • Reordering Rows for Better Compression: Beyond the Lexicographic Order
    ACM Transactions on Database Systems 37 (3), 2012

    Renseignements PDF (arXiv) Diapositives Code Code Code

  • The universality of iterated hashing over variable-length strings
    Discrete Applied Mathematics 160 (4-5), 2012

    Renseignements PDF (arXiv)

  • Time Series Classification by Class-Specific Mahalanobis Distances
    Advances in Data Analysis and Classification 6 (3), 2012

    Renseignements PDF (arXiv)

  • A Call to Arms: Revisiting Database Design
    SIGMOD Record 40 (3), 2011

    Renseignements PDF (arXiv)

  • Extracting, Transforming and Archiving Scientific Data
    In VLDL 2011, Berlin, Germany, 2011

    Renseignements PDF (arXiv)

  • Reordering Columns for Smaller Indexes
    Information Sciences 181 (12), 2011

    Renseignements PDF (arXiv)

  • Recursive n-gram hashing is pairwise independent, at best
    Computer Speech & Language 24 (4), pages 698-710, 2010

    Renseignements PDF (arXiv) Code

  • Sorting improves word-aligned bitmap indexes
    Data & Knowledge Engineering 69 (1), 2010

    Renseignements PDF (arXiv) Code

  • Faster retrieval with a two-pass dynamic-time-warping lower bound
    Pattern recognition 42 (9), 2009

    Renseignements PDF (arXiv) Code

  • An Optimal Linear Time Algorithm for Quasi-Monotonic Segmentation
    International Journal of Computer Mathematics 86 (7), 2009

    Renseignements PDF (arXiv) Code

  • Hierarchical Bin Buffering: Online Local Moments for Dynamic External Memory Arrays
    ACM Transactions on Algorithms 4(1): 14 (2008)

    Renseignements PDF (arXiv) Code

  • Histogram-Aware Sorting for Enhanced Word-Aligned Compression in Bitmap Indexes
    DOLAP 2008

    Renseignements PDF (arXiv) Code

  • Pruning Attribute Values From Data Cubes with Diamond Dicing
    IDEAS 2008

    Renseignements PDF (arXiv)

  • A Better Alternative to Piecewise Linear Time Series Segmentation
    SIAM Data Mining 2007

    Renseignements PDF (arXiv) Code

  • A Comparison of Five Probabilistic View-Size Estimation Techniques in OLAP
    DOLAP 2007, pp. 17-24, 2007

    Renseignements PDF (arXiv) Diapositives Code

  • Monotonicity Analysis over Chains and Curves
    In Curves and Surfaces 2006, Saint-Malo, France, 2007

    Renseignements PDF (arXiv)

  • Removing Manually-Generated Boilerplate from Electronic Texts: Experiments with Project Gutenberg e-Books
    CASCON 2007

    Renseignements PDF (arXiv) Code

  • Tag-Cloud Drawing: Algorithms for Cloud Visualization
    Tagging and Metadata for Social Information Organization (WWW 2007)

    Renseignements PDF (arXiv) Diapositives Code Jeu de données

  • Attribute Value Reordering For Efficient Hybrid OLAP
    Information Sciences 176 (16) 2006

    Renseignements PDF (arXiv)

  • Streaming Maximum-Minimum Filter Using No More than Three Comparisons per Element
    Nordic Journal of Computing 13 (4), pages 328-339, 2006

    Renseignements PDF (arXiv) Code Code

  • Collaborative filtering and inference rules for context‐aware learning object recommendation
    Interactive Technology and Smart Education 2 (3), 2005

    Renseignements PDF

  • Scale and Translation Invariant Collaborative Filtering Systems
    Information Retrieval 8 (1), 2005

    Renseignements PDF

  • Slope One Predictors for Online Rating-Based Collaborative Filtering
    In SIAM Data Mining (SDM 2005), Newport Beach, California, April 21-23, 2005

    Renseignements PDF (arXiv)

  • A family of 4-point dyadic high resolution subdivision schemes
    In Curves and Surfaces 2002, Saint-Malo, France, 2003

    Renseignements PDF Code

  • Fourier analysis of 2-point Hermite interpolatory subdivision schemes
    Journal of Fourier Analysis and Applications 7 (5), 2001

    Renseignements PDF

  • Wavelet time entropy, T wave morphology and myocardial ischemia
    IEEE Transactions on Biomedical Engineering 47 (7), 2000

    Renseignements

  • Une famille d'ondelettes biorthogonales sur l'intervalle obtenue par un schéma d'interpolation itérative
    Annales des Sciences Mathématiques du Québec 23 (1), 1999

    Renseignements PDF

Conférences

Je donne régulièrement des conférences. Ma conférence à QCon San Francisco 2019 a été identifiée comme “best voted” avec un taux de satisfaction de 98% ce qui est beaucoup plus élevé que la moyenne.

Projets

SIMDJSON

Traiter des gigaoctets de documents JSON par seconde

Les bitmaps Roaring

Bitmap compressés et véloces, largement déployés. (photo: Edge Earth)

MaskedVByte

MaskedVByte : VByte accélé par SIMD

Laboratoire

Nous avons la chance d’avoir un laboratoire pleinement équipé avec un technicien dédié à nos travaux. Nous avons une ferme de serveurs utilisés partout dans le monde pour étudier la performance du lociel (par ex. par des chercheurs comme Agner Fog). Certaines de nos machines ont les spécifications suivantes:

  • Microarchitecture Haswell : Intel Core i7-4770 CPU @ 3.40GHz
  • Microarchitecture Knights Landing : Intel Xeon Phi™ CPU 7210 @ 1.30GHz (64 coeurs)
  • Microarchitecture Skylake : Intel Core i7-6700 CPU @ 3.40GHz
  • Microarchitecture Skylake-X : Intel Xeon W-2104 CPU @ 3.20GHz
  • IBM POWER9 2.2 GHz, 4-core
  • Microarchitecture Cannonlake: Intel Core i3-8121U CPU @ 2.20GHz
  • Microarchitecture Skylark (ARMv8): Ampere eMAG CPU 32 coeurs @ 3.3 GHz

Nous avons aussi plusieurs stations de travail et de l’espace dans notre laboratoire pour explorer la réalité virtuelle comme outil en science des données.

Étudiants

Marina

Je recrute des étudiants et stagiaires post-doctoraux pour mon équipe. Si vous adorez concevoir du logiciel véloce, et que vous souhaitez venir à Montréal, écrivez-moi! Si vous disposez d’un profil GitHub impressionnant, ce sera un atout en votre faveur. Une connaissance du français est un atout si vous souhaitez suivre un programme universitaire sous ma supervision. Certains de mes meilleurs étudiants sont des étudiantes. Nous offrons des bourses pour études supérieurs en performance du logiciel pour l’ingénierie des données.

Si vous êtes un canadien poursuivant des études de premier cycle avec au moins une moyenne de B, vous pourriez être intéressés à venir travailler avec moi dans le cadre d’une bourse de recherche de 1er cycle du CRSNG. Il s’agit d’un stage à temps plein dans nos laboratoires à Montréal. Les dates limites pour postuler sont :

  • le premier mars pour un stage à l’été;
  • le premier juillet pour l’automne;
  • le premier novembre pour l’hiver.

Il s’agit d’un concours qui se poursuit en continu : je reçois des candidatures à toutes les sessions. Merci de prévoir au moins une semaine pour la préparation de votre candidature. Écrivez-moi par courriel pour exprimer votre intérêt.

Si vous souhaitez poursuivre une maîtrise en technologie de l’information en technologie de l’information à temps plein sous ma direction à Montréal, je reçois des candidatures pour les bourses d’études supérieures du CRSNG. Vous devez avoir un solide dossier universitaire pour postuler. Vous devez aussi être citoyen canadien ou résident permanent du Canada. La date limite pour postuler est le premier décembre de chaque année. Vous devez prévoir du temps pour préparer votre demande. Je reçois des candidatures à tous les ans. Écrivez-moi par courriel pour exprimer votre intérêt.

Si vous êtes intéressés par un doctorat en informatique cognitive à temps plein sous ma direction à Montréal, je reçois des candidatures pour les bourses d’études supérieures du CRSNG. Vous devez avoir un solide dossier universitaire pour postuler. Vous devez aussi être citoyen canadien ou résident permanent du Canada. La date limite pour postuler est le premier novembre de chaque année. Vous devez prévoir du temps pour préparer votre demande. Je reçois des candidatures à tous les ans. Écrivez-moi par courriel pour exprimer votre intérêt.

Je dirige régulièrement des étudiants aux cycles supérieurs à l’Université du Québec (TÉLUQ et UQAM). Je co-dirige aussi des étudiants à l’Université du Nouveau-Brunswick, à l’École Polytechnique et à l’Université Concordia.

Quelques diplômés récents:

Quelques ancients étudiants:

Étudiants au doctorat en cours de supervision:

  • Gary Germeil (codirigé avec Richard Hotte)
  • François Lewis (dirigé avec Patrick Plante)
  • Pierre Marie Ntang
  • Fatma Miladi (dirigé avec Valéry Psyché)
  • Guy Jobin (dirigé avec Dragos Vieru)
  • Luis Garcia Vargas (dirigé avec Franck Jovanic)
  • Mohamed Eldesouki (dirigé avec Yuhong Yan)

Étudiants à la maîtrise en cours de supervision:

Assistants de recherche récents (premier cycle):

  • Nicolas Boyer, été 2021, récipiendaire d’une bourse de recherche de premier cycle du CRSNG.
  • Yoann Le Rouzic, été 2020. GitHub
  • Io Andes Daza-Dillon, été 2019, récipiendaire d’une bourse de recherche de premier cycle du CRSNG. GitHub
  • Jérémie Piotte, automnes 2018 et 2019, récipiendaire d’une bourse de recherche de premier cycle du CRSNG. GitHub
  • Niko Girardelli, hiver 2018. GitHub

Mentorat

Nouvelles

Plus de posts

Damien Brun a soutenu avec succès sa thèse de doctorat.

CONTINUER DE LIRE

Daniel Lemire reçoit le prix d’excellence en recherche de l’Université du Québec pour ses travaux sur simdjson.

CONTINUER DE LIRE

Tarek Khei a soutenu avec succès sa thèse de doctorat.

CONTINUER DE LIRE

Daniel Lemire a été admis au cercle d’excellence de l’Université du Québec

CONTINUER DE LIRE

Xueping Dai a complété avec succès sa soutenance de thèse de doctorat.

CONTINUER DE LIRE

Services

J’organise à Montréal des séries d’ateliers ouverts au public: le technolab et le tribalab.

J’ai fait partie du comité scientifique de plusieurs conférences internationales :

  • ACM Conference on Information and Knowledge Management (ACM CIKM)
  • ACM Conference on Web Search and Data Mining (ACM WSDM)
  • ACM Conference on Information Retrieval (ACM SIGIR)
  • ACM Conference on Recommender Systems (ACM RecSys)
  • ACM/IEEE Joint Conference on Digital Libraries (JCDL)

En juin 2018, j’ai participé au séminaire Dagstuhl 18251 intitulé “Database Architectures for Modern Hardware”.

En 2018, j’ai été reconnu par la revue Software: Practice and Experience comme “distinguished referee”.

En 2019, j’ai été le président d’EDA 2019 (Business Intelligence & Big Data) tenue en octobre 2019 à Montpellier, France.

Je suis éditeur de la revue Software: Practice and Experience journal (Wiley) depuis 2021. Je suis éditeur associé de la section informatique au sein de la revue Heliyon (Elsevier) depuis 2015.

J’ai récemment fait partie des comités scientifiques suivants :

  • WSDM 20212 15th ACM International WSDM Conference (Phoenix, AZ, USA, Feb. 2nd to March 4th, 2022)
  • ASD 2021: 13th edition of the Conference on Advances in the Science of Data (Blida, Algeria, 24-25 October 2021)
  • CIKM 2021: 30th ACM International Conference on Information and Knowledge (Gold Coast, Queensland, Australia, 1-5 November 2021)
  • ECML/PKDD 21: European Conference on Machine Learning and Principles and Practice of Knowledge Discovery in Databases (Bilbao, Spain, 13-17 September)
  • EDA 2021: 17e journées EDA Business Intelligence and Big Data (1-2 July 2021)
  • ACM SIGKDD 2021: 27th International Conference on Knowledge Discovery and Data Mining (Singapore, Aug 14-18, 2021)
  • SIGIR 2021: 44th International ACM SIGIR Conference on Research and Development in Information Retrieval
  • DOLAP 2021: 23nd International Workshop On Design, Optimization, Languages and Analytical Processing of Big Data
  • WSDM 2021:14th ACM International WSDM Conference (Jerusalem, Israel, March 8-12, 2021)
  • EDML20: Second Workshop on Evaluation and Experimental Design
  • RecSys 2020: 14th ACM Recommender Systems Conference (Rio de Janeiro, Brazil)
  • BBIGAP’2020: Second International Workshop for Business Intelligence & Big Data Applications
  • ECML-PKDD 2020: European Conference on Machine Learning and Principles and Practice of Knowledge Discovery in Databases (Area Chair)
  • CIKM 2020: 29th ACM International Conference on Information and Knowledge
  • DaWak 2020: 22nd International Conference on Big Data Analytics and Knowledge Discovery
  • SIGIR 2020: 43rd International ACM SIGIR Conference on Research and Development in Information Retrieval
  • DOLAP 2020: 22nd International Workshop On Design, Optimization, Languages and Analytical Processing of Big Data
  • ADBIS 2020: 24th European Conference on Advances in Databases and Information System (August 25-28: Lyon, France)
  • CIKM 2019: 28th ACM International Conference on Information and Knowledge Management (Nov 3-7, 2019: Beijing, China)
  • RecSys 2019: 13th ACM Recommender Systems Conference (September 2019; Copenhagen, Denmark)
  • BBigAP 2019: 1st International Workshop on BI & Big Data applications, In conjunction with the 23rd European Conference on Advances in Databases and Information Systems (ADBIS 2019) (September 8, 2019; Bled, Slovenia)
  • DOLAP 2019 - 21st International Workshop On Design, Optimization, Languages and Analytical Processing of Big Data (March 26, 2019; Lisbon, Portugal)
  • CIKM 2018 - Twenty-Seventh ACM International Conference on Information and Knowledge Management (October 22-26, 2018; Turing, Italy)
  • ASD 2018 - 12th edition of the Conference on Advances of Decisional Systems : Big data & Applications (May 2018; Marrakech, Morocco)
  • RecSys 2018 - 12th ACM Recommender Systems Conference (October 2018; Vancouver, Canada)
  • WABiD* 2018 - 1st International Workshop on Advances on Big Data Management, Analytics and Security (September 2018; Budapest, Hungary)
  • WWW 2018 - Twenty-seventh International WWW Conference (April 23-27 2018; Lyon, France)
  • DOLAP 2018 - Nineteenth International Workshop On Design, Optimization, Languages and Analytical Processing of Big Data (March 26–29, 2018; Vienna, Austria)
  • CIKM 2017 - Twenty-Sixth ACM International Conference on Information and Knowledge Management (November 6-10, 2017; Singapore)
  • SPIRE 2017 - 24th International Symposium on String Processing and Information Retrieval (September 26-29, 2017; Palermo, Italy)

J’ai été un examinateur externe sur les thèses de doctorat suivantes :

  • Kareem El Gebaly à l’Université Waterloo (2018) - dirigé par Jimmy Lin, Lukasz Golab et Ashraf Aboulnaga.
  • Mohammed Shaaban à l’Université Pierre et Marie Curie (2017) - dirigé par Patrick Garda.
  • Mehdi Boukhechba à l’UQAC (2016) - dirigé par Abdenour Bouzouane et Charles Gouin-Vallerand.
  • Hicham Assoudi à l’UQAM (2016) - dirigé par Hakim Lounis.
  • Khaled Dehdouh à Lyon 2 (2015) - dirigé par Omar Boussaid.
  • Martin Leginus à l’Université Aalborg (2015) - dirigé par Peter Dolog.
  • Ahmad Taleb à l’Université Concordia (2011) - dirigé par Todd Eavis.

En 2020, j’étais l’un de deux évaluateurs externes du programme de maîtrise en informatique à l’UQAC.

J’ai servi comme membre de comité d’évaluateur au sein d’organisme subventionnaires :

  • FRQNT: comité d’évaluation 03F (informatique théorique) depuis 2007.
  • FRQNT: comité d’évaluation 309 (subvention d’équipe en informatique) depuis 2006.
  • CRSNG: comité d’évaluation du programme de subventions d’outils et d’instruments de recherche dans les sciences informatiques (2012-2015)
  • CRSNG: comité d’évaluation des subventions à la découverte en Sciences informatiques, comité 1507 (2018-2021), co-président du comité en 2019-2020 et 2020-2021.

Média

Articles et entrevues

Cliquez sur la photo pour une version agrandie.

D. Lemire's picture

D. Lemire's picture

Me joindre

  • [email protected]
  • Université du Québec (TÉLUQ), 5800, rue Saint-Denis, Bureau 1105, Montréal (Québec) H2S 3L5 Canada
  • sur rendez-vous