Photo de Daniel Lemire

est professeur titulaire en informatique. Il s'intéresse particulièrement à la performance du logiciel et aux techniques d'indexation en science des données. Il aime poser un regard critique sur l'utilisation des technologies.

Daniel Lemire est parmi les 2 % de scientifiques les plus cités au monde (classement de l'Université Stanford, 2023). Il fait partie des 0,0006 % de programmeurs les plus suivis au monde sur GitHub ; GitHub compte plus de 100 millions de développeurs.

Une grande partie de nos progrès technologiques récents, tous domaines confondus, repose sur des logiciels. Adoptés par les géants de l’informatique, les travaux du professeur Lemire  permettant des gains tangibles remarquables, dont voici quelques exemples :

  • Les disques et réseaux sont aujourd'hui capables de transmettre des données è des gigaoctets par seconde. Malheureusement, nos logiciels limitent souvent artificiellement la performance à des mégaoctets par seconde. C'est notamment le cas lorsque les services web échangent des milliards de données quotidiennement. Le professeur Lemire a mis au point la première bibliothèque logicielle appelée le parseur simdjson, capable de traiter les données issues des services web (JSON) à des gigaoctets par seconde. Ce parseur est aujourd’hui utilisé dans des systèmes importants tels que Facebook Velox, et par de grandes entreprises, dont GoogleShopify et Intel. Il fait également partie d’un outil fondamental en informatique (Node.js), où il aide à charger les fichiers de configuration plus rapidement. À ce jour, le parseur simdjson demeure le plus rapide au monde pour le traitement de documents JSON. Cette découverte à fort impact lui a valu le Prix d'excellence 2020 de l'Université du Québec pour la réussite en recherche, tous domaines confondus, et ce, dans une population de plus de 3500 chercheuses et chercheurs. Les résultats de ses travaux sont utilisés pour accélérer l'analyse syntaxique dans le navigateur Google Chrome ainsi qu'au sein du navigateur Safari. L'article On-demand JSON : A better way to parse documents? a été l'article le plus lu des 5 dernières années chez Software : Practice and Experience (2024).
  • Le professeur Lemire a conçu Roaring Bitmaps, lequel est devenu une norme et fait partie d’innombrables systèmes importants, dont Google, pour l’analyse des données au sein de YouTube, ainsi que pour des entreprises telles qu’Uber, Microsoft et Wikipédia. Le travail du professeur Lemire sur les bitmaps Roaring a été conçu comme une solution de rechange efficace à leur ancien format EWAH qui reste largement utilisé par des millions de programmeurs chaque jour, ouvrant d’autant la portée de cette découverte.
  • Les nombres sont généralement stockés sur disques ou échangés sur un réseau sous forme de chaînes de caractères, convertis en une forme binaire standard par les logiciels lors des opérations. Cette conversion représente un problème resté pratiquement intact dans la littérature scientifique pendant près de 30 ans. Grâce à un nouvel algorithme, le professeur Lemire est parvenu à multiplier la vitesse de lecture des nombres au sein des systèmes logiciels par quatre. L’algorithme a été adopté par plusieurs langages de programmation (C#, Go et Rust), la bibliothèque C++ standard sous Linux, et plusieurs systêmes importants dont les navigateurs web Safari, Chrome et Ege. En accélérant une opération fondamentale pour les systèmes logiciels, cet algorithme est devenu omniprésent dans nos outils informatiques quotidiens.
  • Toujours à propos des opérations de chaînes de caractères, l’équipe du professeur Lemire a aussi produit la bibliothèque logicielle simdutf qui permet de transformer et valider les chaînes de caractères de six à dix fois plus rapidement que les méthodes conventionnelles. Cette bibliothèque inclut plusieurs nouveaux algorithmes et fait partie du populaire moteur d’exécution JavaScript Node.js. À son tour, Node.js est utilisé par un large éventail de systèmes, notamment pour créer des applications web chez NetflixUberLinkedInWalmart, et c’est le moteur principal d’importants systèmes bureautiques, tels que SlackDiscord et Microsoft Teams. Son algorithme de validation des chaînes Unicode est utilisé par plusieurs systèmes importants dont l'interpréteur PHP.

Le professeur Lemire a aussi apporté un large éventail de contributions aux systèmes informatiques fondamentaux. Il a produit, par exemple, un nouvel algorithme utilisé par le noyau Linux et par les bibliothèques standard de plusieurs langages de programmation (GNU libstdc++, bibliothèque standard C++ de Microsoft, etc.), utilisés à leur tour pour les opérations des logiciels dans une très grande variété de systèmes. Il a battu des records de vitesse et d’efficacité lors du décodage et de l’encodage des données binaires en texte (base64), processus impliqué notamment dans la norme de messagerie électronique, allant dans certains cas à des vitesses 20 fois plus rapides qu’une approche conventionnelle. Ces algorithmes font désormais partie des technologies populaires pour le développement web.

  • L’impact de ses travaux à l’échelle internationale se démontre aussi par le fait que ses algorithmes et outils informatiques sont cités dans 37 brevets détenus par des entreprises parmi lesquelles on trouve MicrosoftLinkedInOracle et Fujitsu Limited.
  • En outre, le professeur Lemire se démarque par ses travaux en mobilisation des connaissances et ses qualités de communicateur. Il tient depuis 2004 un blogue en informatique dans lequel il publie plusieurs billets par mois. Ce dernier est suivi par plus de 12 500 inscrits de partout à travers le monde. Ses billets sont souvent commentés, lui permettant d’engager une conversation avec la communauté internationale. Ils sont cités par d’autres blogues de références et reconnus par la Silicon Valley, augmentant d’autant son rayonnement.
  • Le professeur Lemire participe régulièrement, à titre de membre de comités de programme, à l’organisation de conférences internationales de premier plan en informatique (Ex. : ACM CIKMWWWACM RecSys, etc.). Comme conférencier, il s’est vu décerner la mention de conférence la plus appréciée de la QCon2019, laquelle a été visionnée plus de 69 000 fois sur YouTube, jusqu’à maintenant.
  • Il est aussi éditeur de la revue Software: Practice and Experience depuis 2020. Fondée en 1971, cette revue est l’une des plus prestigieuses en informatique et se place parmi les 20 % des revues du domaine les plus lues et citées, avec un taux de citation en forte hausse depuis les cinq dernières années. En plus de participer à de nombreux comités de sélection des principaux organismes de financement de la recherche au Québec et au Canada, il a été coprésident du comité des subventions à la découverte en informatique du CRSNG en 2020-2021.

Le professeur Lemire a maintenu une moyenne de plus de quatre publications par année au cours des dix dernières années, dont près de la moitié sont le résultat d'une collaboration internationale. Ses publications, citées plus de 5000 fois par ses pairs, débordent le domaine de l'informatique, avec des applications en sciences sociales, en psychologie et en sciences de la Terre. Ses travaux de recherche sont par ailleurs cités dans plusieurs médias sociaux. Fervent défenseur du logiciel libre et de la démocratisation du savoir, le professeur Lemire a largement publié le résultat de ses travaux en libre accès (open source), incluant ses outils informatiques, les rendant accessibles gratuitement à la communauté informatique internationale.

En résumé, le professeur Lemire a contribué à la formation de nouveaux chercheurs aux profils diversifiés qui œuvrent toujours en recherche. Il a une influence élargie plus que remarquable en tant que vulgarisateur scientifique, par son approche de science ouverte et ses nombreuses actions de transfert de connaissance.

Conférences (YouTube)

NodeConf EU 2023

BID 2023

SPIRE 2021

Go Systems (San Francisco, 2020)

Performance Summmit III (Seattle, 2020)

QCon San Francisco 2019 (la conférence la plus appréciée par les participants)

Spark Summit East 2017

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 Icelake : Intel(R) Xeon(R) Gold 6338 CPU @ 2.00GHz
  • Microarchitecture Haswell : Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
  • Microarchitecture Knights Landing : Intel(R) Xeon Phi(TM) CPU 7210 @ 1.30GHz (64 coeurs)
  • Microarchitecture Skylake : Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
  • Microarchitecture Skylake-X : Intel(R) Xeon(R) 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

Le laboratoire comprend aussi plusieurs stations de travail. Il y a de l'espace dans notre laboratoire pour explorer la réalité virtuelle comme outil en science des données

Étudiants et stagiaires

Nous recrutons des étudiants et stagiaires post-doctoraux pour notre équipe. Si vous adorez concevoir du logiciel véloce, et que vous souhaitez venir à Montréal, écrivez-nous! 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. Certains de nos 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 Daniel Lemire 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 continuellement : nous recevons des candidatures à toutes les sessions. Merci de prévoir au moins une semaine pour la préparation de votre candidature.

Si vous souhaitez poursuivre une maîtrise en technologie de l'information en technologie de l'information à temps plein sous la direction de Daniel Lemire à Montréal, nous recevons 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. Nous recevons des candidatures à tous les ans.

Si vous êtes intéressés par un doctorat en informatique cognitive à temps plein sous la direction de Daniel Lemire à Montréal, nous recevons 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. Nous recevons des candidatures à tous les ans.

Par ailleurs, tous les étudiants qui complètent une maîtrise en technologie de l'information avec mémoire ont droit à une bourse, automatiquement. Tous les étudiants qui progressent au sein du doctorat en informatique cognitive ont droit à des bourses automatiques. L'inscription au doctorat implique l'exonération des frais de scolarité pour étudiants étrangers.

Daniel Lemire supervise régulièrement des étudiants aux trois cycles universitaires. Il travaille principalement avec des étudiants qui adorent programmer et qui préfèrent les environnements open source (par ex., Linux). Plusieurs de ses étudiants aux cycles supérieurs contribuent à des projets open source sur des sites comme GitHub.

Il a récemment dirigé ou co-dirigé les thèses de doctorat des étudiants suivants :

  • Pierre Marie Ntang, doctorat en informatique cognitive (diplômé en 2023);
  • Gary Germeil, doctorat en informatique cognitive (diplômé en 2022);
  • Tarek Khei, doctorat en informatique cognitive (diplômé en 2020);
  • Xueping Dai, science de l'environnement (diplômé en 2019);
  • Erick Aokou Koffi, doctorat en informatique cognitive (diplômé en 2018);
  • Badis Merdaoui, doctorat en informatique cognitive (diplômé en 2017);
  • Jing Li, doctorat en informatique (diplômée en 2016);
  • Samy Chambi, doctorat en informatique (diplômé en 2016);
  • Hazel Webb, doctorat en informatique  (diplômée en 2010).

Deux de ses étudiants à la maîtrise se sont mérités la médaille d'or du gouverneur général (Verret en 2022, Courcot en 2023). Plusieurs de ses étudiants occupent des postes-clefs: par ex., Maxime Boisvert (M.Sc., 2017) est Production Engineering Manager chez Shopify, Shany Carle (M.Sc., 2017) et and Carine Croteau (M.Sc., 2020 sont professeurs d'informatique au cégep de Victoriaville, Shira Smith est ingénieure chez Discord en Californie.

Les projets de recherche majeurs que je propose en ce moment sont organisées en 4 axes: JSON, Unicode, URL et les index Roaring.

Traitement des documents JSON. Nous avons conçu la librairie de traitement des documents JSON la plus rapidement au monde : simdjson. Elle est utilisée par Facebook, Shopify, Microsoft, etc.

  • Les programmeurs analysent souvent de grands flux de documents JSON. Bien que nous ayons une esquisse de la façon de faire un tel travail avec notre bibliothèque simdjson, la construction réelle et l'évaluation scientifique du problème ferait un bon mémoire de maîtrise.
  • Notre bibliothèque simdjson rapide a des performances d'analyse de pointe, mais elle n'offre pas de moyen pratique pour sérialiser et désérialiser les structures de données (par exemple, une structure de données composée de trois chaînes de caractères et d'un tableau d'entiers). Nous avons esquissé la façon dont cela pourrait être fait à grande vitesse en C++, mais le construire réellement et évaluer le résultat serait un bonne mémoire de maîtrise.
  • Pour interroger les documents JSON comme une base de données, JSON Path offre un ensemble de requêtes riche. En utilisant notre fondation simdjson, nous pensons que nous pouvons fournir un moteur de requête JSON-Path qui devrait être au moins 10 fois plus rapide que les logiciels existants prêts pour la production. Il s'agit d'un problème profond qui servira de sujet de doctorat ou de maîtrise.

Traitement des chaînes Unicode. Nous avons conçu la librairie de traitement des chaînes de caractères Unicode la plus rapidement au monde : simdutf. Elle est utilisée par Node.js, Bun, Microsoft Teams, Slack, etc.

  • En C#, il est possible d'utiliser des instructions SIMD pour plus de vitesse. En utilisant un algorithme dédié, il devrait être possible d'accélérer la validation des chaînes de caractères Unicode (par ex., UTF-8) en C# avec les instructions SIMD (niveau bac. ou maîtrise).
  • Au sein de la librarie simdutf, nos fonctions de transcodage ne prennent pas actuellement en charge le remplacement rapide lorsqu'un caractère incorrect est trouvé. Bien qu'il s'agisse d'un concept simple, la conception d'une telle fonctionnalité à des gigaoctets par seconde devrait s'avérer intéressante (niveau bac. ou maîtrise).
  • En s'appuyant sur nos algorithmes accélérés Unicode de la bibliothèque simdutf, nous devrions chercher à construire une extension riche supportant le regroupement, la normalisation, la recherche, le tri et la collation des graphèmes Unicode qui battent tous les records (niveau maîtrise ou doctorat)

Traitement des URL. Nous avons conçu la librairie de traitement des URL respectant la norme WHATWG la plus rapide au monde : ada. Elle est utilisée par Node.js, Microsoft Teams, Slack, etc.

  • Les développeurs Web s'appuient généralement sur les normes du WHATWG (URL, WebSockets, Fetch, Streams) telles qu'elles sont mises en œuvre dans des systèmes tels que Node.js. Nous construisons actuellement un analyseur d'URL qui bat tous les records. Cependant, il reste encore beaucoup à faire : par exemple, l'analyse vectorielle et l'encodage des données encodées en pourcentage, la normalisation et la validation Unicode vectorisées, l'analyse et la validation rapides des URL, etc. L'amélioration des performances d'analyse d'URL constituerait un bon projet de maîtrise.

Les index bitmap. Les index bitmap Roaring que nous avons développé sont utilisées par plusieurs systèmes majeurs tels que Apache Lucene et des systèmes dérivés comme Solr et Elasticsearch, Metamarkets' Druid, LinkedIn Pinot, Netflix Atlas, Apache Spark, OpenSearchServer, Cloud Torrent, Whoosh, InfluxDB, Pilosa, Bleve, Microsoft Visual Studio Team Services (VSTS), et Apache Kylin d'eBay. La bibliothèque CRoaring est utilisée dans plusieurs systèmes tels que Apache Doris, StarRocks. Le moteur SQL de YouTube, Google Procella, utilise les bitmaps de Roaring pour l'indexation.

  • Intel et AMD fournissent de nouveaux jeux d'instructions rapides pour le traitement vectorisé (AVX-512). Nous disposons d'un support AVX-512 dans notre bibliothèque populaire Roaring Bitmap en C/C++. Un sujet idéal pour une thèse de maîtrise serait l'extension de ce support pour fournir des gains de performance importants dans le monde réel.

Si un de ces projets vous intéressent, veuillez me joindre.

Livres

  • Java pas à pas

  • Programmation avec Python: des jeux au Web

  • La science des données: Théorie et applications avec R et Python

Formation

  • Postdoctorat (Institut de génie biomédical)
  • Doctorat en mathématiques de l’ingénieur (Université de Montréal et École Polytechnique)
  • Maîtrise en mathématiques (University of Toronto)
  • Baccalauréat en mathématique (University of Toronto), avec mention «High Distinction»

Champs d'expertise

  • Science des données
  • Ingénierie des données
  • Indexation des données
  • Performance du logiciel
  • Vectorisation (SIMD)

Enseignement

Projets de recherche

Programme de recherche

Nous cherchons à accélérer les techniques d'indexation, soit au sein des moteurs de recherche ou des bases de données relationnelles. Dans le cadre de ces travaux, on exploite les développements récents au sein des processeurs courants. En particulier, nous cherchons à bénéficier pleinement de la vectorisation de ces processeurs. Un aspect important de cette recherche est la compression des index, qu'ils s'agisse d'index inversés, d'arbre B ou d'index bitmaps. L'objectif étant de faire en sorte que les index puissent résider en mémoire le plus possible. On souhaite compresser et décompresser les données à très grande vitesse en mémoire. On souhaite aussi grandement accélérer les opérations courantes comme l'intersection ou l'union.

Subventions actuelles ou récentes

  • Data Processing at Gigabytes Per Second (Subvention à la découverte du CRSNG, 2024-2030): 145,000$
  • Développement de solutions innovantes et adaptatives dans le domaine de la formation numérique à distance, en mettant en œuvre des technologies inhérentes à l'intelligence artificielle pour améliorer l'expérience d'apprentissage des apprenants (Subvention de l'AUF, 2024-2025): 20,000 euros

Publications et communications

Articles de revues avec comité de lecture

Brackett-Rozinsky, Nevin et Lemire, Daniel (sous presse). Batched Ranged Random Integer Generation. Software: Practice and Experience. https://doi.org/10.1002/spe3369

Courcot, Blandine; Lemire, Daniel et Bélanger, Nicolas (sous presse). Dynamics of soil water potential as a function of stand types in a temperate forest: Emphasis on flash droughts. Geoderma Regional. https://doi.org/10.1016/j.geodrs.2024.e00850

Keiser, John et Lemire, Daniel (2024). On-Demand JSON: A Better Way to Parse Documents?. Software: Practice and Experience, 54 (6). https://doi.org/10.1002/spe.3313

Nizipli, Yagiz et Lemire, Daniel (2024). Parsing Millions of URLs per Second. Software: Practice and Experience, 54 (5). https://doi.org/10.1002/spe.3296

Lemire, Daniel (2024). Exact Short Products From Truncated Multipliers. Computer Journal, 67 (4). https://doi.org/10.1093/comjnl/bxad077

Clausecker, Robert et Lemire, Daniel (2023). Transcoding Unicode Characters with AVX-512 Instructions. Software: Practice and Experience, 53 (12). https://doi.org/10.1002/spe.3261

Mushtak, Noble et Lemire, Daniel (2023). Fast Number Parsing Without Fallback. Software: Practice and Experience, 53 (7), 1467-1471. https://doi.org/10.1002/spe.3198

Graf, Thomas Mueller et Lemire, Daniel (2022). Binary Fuse Filters: Fast and Smaller Than Xor Filters. Journal of Experimental Algorithmics, 27. https://doi.org/10.1145/3510449

Humeau, Tom; Savard, Isabelle; Lemire, Daniel; Dionne, Pierre-Olivier; Angulo Mendoza, Gustavo Adolfo; Plante, Patrick; Pinard, Anne Marie et Roy, Jean-Sébastien (2022). FORCES 3 : Exploitation à des fins pédagogiques des données d’un portail d’apprentissage de l’autogestion de la douleur. Développement d’une architecture de collecte et d’analyse de données et d’un module de suivi du développement des compétences. Médiations et médiatisations (12), 74-97. https://doi.org/10.52358/mm.vi12.287

Lemire, Daniel et Muła, Wojciech (2022). Transcoding Billions of Unicode Characters per Second with SIMD Instructions. Software: Practice and Experience, 52 (2).

Humeau, Tom; Savard, Isabelle; Dionne, Pierre-Olivier; Angulo-Mendoza, Gustavo; Plante, Patrick; Pinard, Anne Marie et Lemire, Daniel (2022). FORCES 3 : Exploitation à des fins pédagogiques des données d’un portail d’apprentissage de l’autogestion de la douleur. Développement d’une architecture de collecte et d’analyse de données et d’un module de suivi du développement des compétences. Médiations & médiatisations (12), 74-97. https://doi.org/10.52358/mm.vi12.287

Klarqvist, Marcus D. R.; Muła, Wojciech et Lemire, Daniel (2021). Efficient Computation of Positional Population Counts Using SIMD Instructions. Concurrency and Computation: Practice and Experience, 33 (17). https://doi.org/10.1002/cpe.6304

Lemire, Daniel; Bartlett, Colin et Kaser, Owen (2021). Integer Division by Constants: Optimal Bounds. Heliyon, 7 (6). https://doi.org/10.1016/j.heliyon.2021.e07442

Keiser, John et Lemire, Daniel (2021). Validating UTF-8 In Less Than One Instruction Per Byte. Software: Practice and Experience, 51 (5), 950-964. https://doi.org/10.1002/spe.2920

Lemire, Daniel (2021). Number Parsing at a Gigabyte per Second. Software: Practice and Experience, 51 (8). https://doi.org/10.1002/spe.2984

Lewis, François; Plante, Patrick et Lemire, Daniel (2021). Pertinence, efficacité et principes pédagogiques de la réalité virtuelle et augmentée en contexte scolaire : une revue de littérature. Médiations & médiatisations (5), 11-27.

Graf, Thomas Mueller et Lemire, Daniel (2020). Xor Filters: Faster and Smaller Than Bloom and Cuckoo Filters. Journal of Experimental Algorithmics, 25 (1). https://doi.org/10.1145/3376122

Muła, Wojciech et Lemire, Daniel (2020). Base64 encoding and decoding at almost the speed of a memory copy. Software: Practice and Experience, 50 (2), 89-97. https://doi.org/10.1002/spe.2777

Lemire, Daniel; Kaser, Owen et Kurz, Nathan (2019). Faster Remainder by Direct Computation: Applications to Compilers and Software Libraries. Software: Practice and Experience, 49 (6), 953-970. https://doi.org/10.1002/spe.2689

Dai, Xueping; Cheng, Li Zhen; Mareschal, Jean-Claude; Lemire, Daniel et Liu, Chong (2019). New method for denoising borehole transient electromagnetic data with discrete wavelet transform. Journal of Applied Geophysics, 168, 41-48. https://doi.org/10.1016/j.jappgeo.2019.05.009

Lemire, Daniel (2019). Fast Random Integer Generation in an Interval. ACM Transactions on Modeling and Computer Simulation, 29 (1). https://doi.org/10.1145/3230636

Lemire, Daniel et O'Neill, Melissa (2019). Xorshift1024*, Xorshift1024+, Xorshift128+ and Xoroshiro128+ Fail Statistical Tests for Linearity. Computational and Applied Mathematics, 350, 139-142. https://doi.org/10.1016/j.cam.2018.10.019

Langdale, Geoff et Lemire, Daniel (2019). Parsing Gigabytes of JSON per Second. VLDB Journal, 28 (6). https://doi.org/10.1007/s00778-019-00578-5

Muła, Wojciech et Lemire, Daniel (2018). Faster Base64 Encoding and Decoding Using AVX2 Instructions. ACM Transactions on the Web, 12 (3). https://doi.org/10.1145/3132709

Li, Jing; Yan, Yuhong et Lemire, Daniel (2018). Full Solution Indexing for top-K Web Service Composition. IEEE Transactions on Services Computing, 11 (3), 521 - 533. https://doi.org/10.1109/TSC.2016.2578924

Lemire, Daniel; Kaser, Owen; Kurz, Nathan; Deri, Luca; O'Hara, Chris; Saint-Jacques, François et Ssi-Yan-Kai, Gregory (2018). Roaring Bitmaps: Implementation of an Optimized Software Library. Software: Practice and Experience, 48 (4), 867–895. https://doi.org/10.1002/spe.2560

Lemire, Daniel; Kurz, Nathan et Rupp, Christoph (2018). Stream VByte: Faster byte-oriented integer compression. Information Processing Letters, 130. https://doi.org/10.1016/j.ipl.2017.09.011

Muła, Wojciech; Kurz, Nathan et Lemire, Daniel (2018). Faster population counts using AVX2 instructions. Computer Journal, 61 (1). https://doi.org/10.1093/comjnl/bxx046

Badia, Antonio et Lemire, Daniel (2018). On Desirable Semantics of Functional Dependencies over Databases with Incomplete Information. Fundamenta Informaticae, 158 (4), 327-352. https://doi.org/10.3233/FI-2018-1651

Ivanchykhin, Dmytro; Ignatchenko, Sergey et Lemire, Daniel (2017). Regular and almost universal hashing: an efficient implementation. Software: Practice and Experience, 47 (10). https://doi.org/10.1002/spe.2461

Lemire, Daniel et Rupp, Christoph (2017). Upscaledb: Efficient Integer-Key Compression in a Key-Value Store using SIMD Instructions. Information Systems, 66, 13–23. https://doi.org/10.1016/j.is.2017.01.002

Lemire, Daniel; Ssi-Yan-Kai, Gregory et Kaser, Owen (2016). Consistently faster and smaller compressed bitmaps with Roaring. Software: Practice and Experience, 46 (11), 1547-1569. https://doi.org/10.1002/spe.2402

Lemire, Daniel et Kaser, Owen (2016). Faster 64-bit universal hashing using carry-less multiplications. Journal of Cryptographic Engineering, 6 (3), 171-185. https://doi.org/10.1007/s13389-015-0110-5

Chambi, Samy; Lemire, Daniel; Kaser, Owen et Godin, Robert (2016). Better bitmap performance with Roaring bitmaps. Software: Practice and Experience, 45 (5), 709–719. https://doi.org/10.1002/spe.2325

Chambi, Samy; Lemire, Daniel et Godin, Robert (2016). Vers de meilleures performances avec des Roaring bitmaps. Technique et Science Informatiques, 35 (3), 335-355.

Kaser, Owen et Lemire, Daniel (2016). Compressed bitmap indexes: beyond unions and intersections. Software: Practice and Experience, 46 (2). https://doi.org/10.1002/spe.2289

Lemire, Daniel; Boytsov, Leonid et Kurz, Nathan (2016). SIMD Compression and the Intersection of Sorted Integers. Software: Practice and Experience, 46 (6).

Badia, Antonio et Lemire, Daniel (2015). Functional dependencies with null markers. Computer Journal, 58 (5), 1160-1168. https://doi.org/10.1093/comjnl/bxu039

Zhao, Wayne Xin; Zhang, Xudong; Lemire, Daniel; Shan, Dongdong; Nie, Jian-Yun; Yan, Hongfei et Wen, Ji-Rong (2015). A General SIMD-based Approach to Accelerating Compression Algorithms. ACM Transactions on Information Systems, 33 (3). https://doi.org/10.1145/2735629

Zhu, Xiaodan; Turney, Peter; Lemire, Daniel et Vellino, Andre (2015). Measuring academic influence: Not all citations are equal. Journal of the Association for Information Science and Technology, 66 (2), 408-427. https://doi.org/10.1002/asi.23179

Lemire, Daniel et Boytsov, Leonid (2015). Decoding billions of integers per second through vectorization. Software: Practice & Experience, 45 (1), 1-29. https://doi.org/10.1002/spe.2203

Crainiceanu, Adina et Lemire, Daniel (2015). Bloofi : Multidimensional Bloom Filters. Information Systems, 54. https://doi.org/10.1016/j.is.2015.01.002

Lemire, Daniel et Kaser, Owen (2014). Strongly universal string hashing is fast. Computer Journal, 57 (11), 1624-1638. https://doi.org/10.1093/comjnl/bxt070

Webb, Hazel; Lemire, Daniel et Kaser, Owen (2013). Diamond dicing. Data & Knowledge Engineering, 86. https://doi.org/10.1016/j.datak.2013.01.001

Prekopcsák, Zoltán et Lemire, Daniel (2012). Time Series Classification by Class-Specific Mahalanobis Distance Measures. Advances in Data Analysis and Classification, 6 (3). https://doi.org/10.1007/s11634-012-0110-6

Lemire, Daniel; Kaser, Owen et Gutarra, Eduardo (2012). Reordering rows for better compression: Beyond the lexicographic order. ACM Transactions on Database Systems, 37 (3). https://doi.org/10.1145/2338626.2338627

Neylon, Cameron; Aerts, Jan; Brown, C. Titus; Coles, Simon J.; Hatton, Les; Lemire, Daniel; Millman, K. Jarrod; Murray-Rust, Peter; Perez, Fernando; Saunders, Neil; Shah, Nigam; Smith, Arfon; Varoquaux, Gaël et Willighagen, Egon (2012). Changing computational research. The challenges ahead. Source Code for Biology and Medicine, 7 (2). https://doi.org/10.1186/1751-0473-7-2

Lemire, Daniel (2012). The universality of iterated hashing over variable-length strings. Discrete Applied Mathematic, 160 (4-5), 604–617. https://doi.org/10.1016/j.dam.2011.11.009

Lemire, Daniel et Kaser, Owen (2011). Reordering Columns for Smaller Indexes. Information Sciences, 181 (12), 2550–2570. https://doi.org/10.1016/j.ins.2011.02.002

Badia, Antonio et Lemire, Daniel (2011). A call to arms: Revisiting database design. SIGMOD Record, 40 (3), 61-69. https://doi.org/10.1145/2070736.2070750

Lemire, Daniel et Kaser, Owen (2010). Recursive n-gram hashing is pairwise independent, at best. Computer Speech & Language, 24 (4), 698-710. https://doi.org/10.1016/j.csl.2009.12.001

Lemire, Daniel; Kaser, Owen et Aouiche, Kamel (2010). Sorting improves word-aligned bitmap indexes. Data & Knowledge Engineering, 69 (1), 3-28. https://doi.org/10.1016/j.datak.2009.08.006

Lemire, Daniel (2009). Faster retrieval with a two-pass dynamic-time-warping lower bound. Pattern Recognition, 42 (9). https://doi.org/10.1016/j.patcog.2008.11.030

Lemire, Daniel; Brooks, Martin et Yan, Yuhong (2009). An optimal linear time algorithm for quasi-monotonic segmentation. International Journal of Computer Mathematics, 86 (7). https://doi.org/10.1080/00207160701694153

Lemire, Daniel et Kaser, Owen (2008). Hierarchical Bin Buffering: Online Local Moments for Dynamic External Memory Arrays. ACM Transactions on Algorithms, 4 (1), 1-31. https://doi.org/10.1145/1328911.1328925

Kaser, Owen et Lemire, Daniel (2006). Attribute value reordering for efficient hybrid OLAP. Information Systems, 176 (16), 2304-2336. https://doi.org/10.1016/j.ins.2005.09.005

Lemire, Daniel (2006). Streaming maximum-minimum filter using no more than three comparisons per element. Nordic Journal of Computing, 13 (4), 328-339.

Lemire, Daniel (2005). Scale and translation invariant collaborative filtering systems. Information Retrieval, 8 (1), 129-150. https://doi.org/10.1023/B:INRT.0000048492.50961.a6

Lemire, Daniel; Boley, Harold; McGrath, Sean et Ball, Marc (2005). Collaborative filtering and inference rules for context-aware learning object recommendation. Interactive Technology and Smart Education, 2 (3). https://doi.org/10.1108/17415650580000043

Dubuc, Serge; Lemire, Daniel et Merrien, Jean-Louis (2001). Fourier analysis of 2-point Hermite interpolatory subdivision schemes. Journal of Fourier Analysis and Applications, 7 (5), 532-552. https://doi.org/10.1007/BF02511225

Livres

Godin, Robert et Lemire, Daniel (2024). Programmation avec Python: des jeux au Web. . ISBN 979-8874122553

Lemire, Daniel; Mezghani, Neila; Boissières, Élodie; Godin, Robert; Louafi, Habib; Osei, Richmond; Shuraida, Shadi; Schmitt, Renée-Maria et Vieru, Dragos (2024). La science des données: Théorie et applications avec R et Python. . ISBN 979-8-3257-7723-3

Godin, Robert et Lemire, Daniel (2024). Java pas à pas: Introduction à la programmation et au langage Java. . ISBN 979-8-8728-5037-3

Chapitres de livres

Noël, Sylvie et Lemire, Daniel (2010). On the Challenges of Collaborative Data Processing. Dans Foster, Jonathan (dir.), Collaborative Information Behaviour. User Engagement and Communication Sharing (p. 55-71). IGI Global : IGI Global.

Aouiche, Kamel; Lemire, Daniel et Godin, Robert (2009). Web 2.0 OLAP: From data cubes to tag clouds. Dans Web Information Systems and Technologies. 4th International Conference, WEBIST 2008, Funchal, Madeira, Portugal, May 4-7, 2008, Revised Selected Papers. Springer, coll. « Lecture Notes in Business Information Processing », vol. 18.

Communications dans des actes avec comité de lecture

Miladi, Fatma; Psyché, Valéry et Lemire, Daniel (sous presse). Comparative Performance of GPT-4, RAG-Augmented GPT-4, and Students in MOOCs. Dans Workshop on Breaking Barriers with Generative Intelligence (BBGI). Springer.

Miladi, Fatma; Psyché, Valéry et Lemire, Daniel (sous presse). Leveraging GPT-4 for Accuracy in Education: A Comparative Study on Retrieval-Augmented Generation in MOOCs. Dans AIED 2024 - 25th International Conference on Artificial Intelligence in Education (LBR Track). New York City : Springer-Verlag, coll. « Communications in Computer and Information Science ».

Miladi, Fatma; Lemire, Daniel et Psyché, Valéry (sous presse). Learning Engagement and Peer Learning in MOOC: A Selective Systematic Review. Dans 19th International Conference on Intelligent Tutoring Systems.

Begoli, Edmon; Camacho-Rodríguez, Jesús; Hyde, Julian; Mior, Michael et Lemire, Daniel (2018). Apache Calcite: A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources. Dans Proceedings of the 2018 ACM International Conference on Management of Data (SIGMOD) (p. 221-230). https://doi.org/10.1145/3183713.3190662

Chambi, Samy; Lemire, Daniel et Godin, Robert (2016). Nouveaux modèles d’index bitmap compressés à 64 bits. Dans Actes des 12es journées francophones sur les Entrepôts de Données et l'Analyse en Ligne.

Chambi, Samy; Lemire, Daniel; Godin, Robert; Boukhalfa, Kamel; Allen, Charles et Yang, Fangjin (2016). Optimizing Druid with Roaring bitmaps. Dans Proceedings of the 20th International Database Engineering & Applications Symposium. ACM. ISBN 978-1-4503-4118-9 https://doi.org/10.1145/2938503.2938515

Li, Jing; Yan, Yuhong et Lemire, Daniel (2016). Scaling up Web Service Composition with the Skyline Operator. Dans Proceedings of the IEEE International Conference on Web Services 2016.

Ruer, Perrine; Gouin-Vallerand, Charles; Zhang, Le; Lemire, Daniel et Vallières, Évelyne F. (2015). An analysis tool for the contextual information from field experiments on driving fatigue. Dans Proceeding of the Ninth International and Interdisciplinary Conference on Modeling and Using Context (Context 2015). Springer, coll. « LNAI ».

Li, Jing; Yan, Yuhong et Lemire, Daniel (2015). A web service composition method based on compact K2-trees. Dans Proceedings of the IEEE International Conference on Services Computing (p. 403 - 410). IEEE. ISBN 978-1-4673-7280-0 https://doi.org/10.1109/SCC.2015.62

Plaisance, Jeff; Kurz, Nathan et Lemire, Daniel (2015). Vectorized VByte Decoding. Dans Proceedings of the First International Symposium on Web Algorithms.

Chambi, Samy; Lemire, Daniel et Godin, Robert (2014). Roaring bitmap : nouveau modèle de compression bitmap. Dans Actes des 10e journées francophones sur les Entrepôts de Données et l'Analyse en Ligne.

Li, Jing; Yan, Yuhong et Lemire, Daniel (2014). Full Solution Indexing Using Database for QoS-aware Web Service Composition. Dans Proceedings of the IEEE International Conference on Services Computing (p. 99 - 106). IEEE. ISBN 978-1-4799-5065-2 https://doi.org/10.1109/SCC.2014.22

Lemire, Daniel et Vellino, Andre (2011). Extracting, Transforming and Archiving Scientific Data. Dans Proceedings of the Fourth Workshop on Very Large Digital Libraries. DELOS Association for Digital Libraries.

Kaser, Owen; Lemire, Daniel et Aouiche, Kamel (2008). Histogram-Aware Sorting for Enhanced Word-Aligned Compression in Bitmap Indexes. Dans Proceedings of the 11th ACM International Workshop on Data Warehousing and OLAP. ACM.

Webb, Hazel; Kaser, Owen et Lemire, Daniel (2008). Pruning Attributes From Data Cubes with Diamond Dicing. Dans IDEAS '08 Proceedings of the 2008 international symposium on Database engineering & applications. ACM International Conference Proceeding Series.

Aouiche, Kamel; Lemire, Daniel et Godin, Robert (2008). Collaborative OLAP with Tag Clouds: Web 2.0 OLAP Formalism and Experimental Evaluation. Dans Proceedings of WEBIST 2008. Portugal : Institute for Systems and Technologies of Information, Control and Communication.

Aouiche, Kamel et Lemire, Daniel (2007). A Comparison of Five Probabilistic View-Size Estimation Techniques in OLAP. Dans Proceedings of the 10th International Workshop on Data Warehousing and OLAP. ACM.

Aouiche, Kamel et Lemire, Daniel (2007). Unasssuming View-Size Estimation Techniques in OLAP. Dans Proceedings of the 9th International Conference on Enterprise Information Systems. Portugal : INSTICC.

Kaser, Owen et Lemire, Daniel (2007). Removing Manually-Generated Boilerplate from Electronic Texts: Experiments with Project Gutenberg e-Books. Dans Spencer, Bruce; Story, Margaret-Ann et Stewart, Darlene (dir.), Proceedings of the 2007 Conference of the Center for Advanced Studies on Collaborative Research (CASCON '07). Riverton, NJ, É.-U. : IBM.

Kaser, Owen et Lemire, Daniel (2007). Tag-Cloud Drawing: Algorithms for Cloud Visualization. Dans Proceedings of the Tagging and Metadata for Social Information Organization Workshop, 16th International World Wide Web Conference (WWW 2007). Banff, Canada : IW3C2.

Kucerovsky, Dan et Lemire, Daniel (2007). Monotonicity Analysis over Chains and Curves. Dans Curve and surface fitting: Avignon 2006 (p. 180-190). Brentwood, TN, É.-U. : Nashboro Press.

Kaser, Owen; Lemire, Daniel et Keith, Steven (2006). The LitOLAP Project: Data Warehousing with Literature. Dans Proceedings of the 2006 CaSTA Conference. University of New Brunswick.

Brooks, Martin; Yan, Yuhong et Lemire, Daniel (2005). Scale-Based Monotonicity Analysis in Qualitative Modelling with Flat Segments. Dans Proceedings of the Nineteenth International Joint Conference on Artificial Intelligence. Edinburgh, UK : IJICAI.

Lemire, Daniel (2005). A Better Alternative to Piecewise Linear Time Series Segmentation. Dans Apte, Chid; Skillicorn, David; Liu, Bing et Parthasara, Srinivasan (dir.), Proceedings of the 2007 SIAM International Conference on Data Mining (SDM'07) (p. 545-550). Minneapolis, Minnesota : SIAM. https://doi.org/10.1137/1.9781611972771.59

Lemire, Daniel; Brooks, Martin et Yan, Yuhong (2005). An Optimal Linear Time Algorithm for Quasi-Monotonic Segmentation. Dans Han, Jiawei; Wah, Benjamin W.; Vijay, Raghavan; Wu, Xindong et Rastogi, Rajeev (dir.), Proceedings of the Fifth IEEE International Conference on Data Mining (ICDM-05) (p. 709-712). Piscataway, NJ : IEEE. https://doi.org/10.1109/ICDM.2005.25

Lemire, Daniel et Maclachlan, Anna (2005). Slope One Predictors for Online Rating-Based Collaborative Filtering. Dans Kargupta, Hillol; Srivastava, Jaideep; Kamath, Chandrika et Goodman, Arnold (dir.), Proceedings of the 2005 SIAM International Conference on Data Mining (SDM'05) (p. 471-475). Newport Beach, CA : SIAM.

Anderson, Michelle; Ball, Marcel; Boley, Harold; Greene, Stephen; Howse, Nancy; Lemire, Daniel et McGrath, Sean (2003). RACOFI: A Rule-Applying Collaborative Filtering System. Dans Proceedings of the IEEE/WIC COLA 2003.

Kaser, Owen et Lemire, Daniel (2003). Attribute Value Reordering for Efficient Hybrid OLAP. Dans Rizzi, Stefano et Song, Il-Yeol (dir.), Proceedings of the ACM Sixth International Workshop on Data Warehousing and OLAP (p. 1-8). New Orleans, LA : ACM.

Lemire, Daniel (2003). A Family of 4-Point Dyadic Multistep Subdivision Schemes. Dans Cohen, Albert; Merrien, Jean-Louis et Scumaker, Larry L. (dir.), Curves and Surface Fitting: Saint-Malo 2002 (p. 259-268). Brentwood, TN, USA : Nashboro Press.

Lemire, Daniel (2002). Wavelet-Based Relative Prefix Sum Methods for Range Sum Queries in Data Cubes. Dans Stewart, Darlene A. et Johnson, J. Howard (dir.), Proceedings of the 2002 Conference of the Center for Advanced Studies on Collaborative Research (CASCON '02) (p. 6). Riverton, NJ, USA : IBM.

Communications avec comité de lecture

Plante, Patrick; Desjardins, Guillaume; Dionne, Pierre-Olivier; Marineau, Sophie; Paré, Jean-François; Sauvé, Louise; Savard, Isabelle; Pinard, Anne-Marie; Lemire, Daniel et Angulo Mendoza, Gustavo Adolfo (oct. 2019). Game Design Service Platform for Seniors' Health and Well-being. Affiche présentée à la AGE-WELL 2019 Annual Conference, Moncton, Canada.

Aouiche, Kamel; Lemire, Daniel et Kaser, Owen (juin 2008). Tri de la table de faits et compression des index bitmaps avec alignement sur les mots. Communication présentée aux 24ièmes journées 'Bases de Données Avancées'.

Communications dans des actes sans comité de lecture

Lemire, Daniel (2021). Unicode at Gigabytes per Second. Dans Lecroq, Thierry et Touzet, Hélène (dir.), SPIRE 2021: String Processing and Information Retrieval. https://doi.org/10.1007/978-3-030-86692-1_2

Autres contributions sans comité de lecture

Desjardins, Guillaume et Plante, Patrick (2021). Guide des bonnes pratiques pour la conception de jeux sérieux et thérapeutiques destinés aux aînés (avec la collaboration de Marineau, Sophie; Angulo Mendoza, Gustavo Adolfo; Savard, Isabelle; Pinard, Anne Marie; Lemire, Daniel; Paré, Jean-François et Pouliot, Sylvie) (Rapport de recherche). Québec, Canada : Observatoire du numérique en éducation.

Prix et distinctions

Reconnaissance

Enseignement

  • Prix Sherpa (2023) pour mon dévouement en enseignement

Prix industriels

  • Google Open Source Peer Bonus Program (2012)

Communications primées

  • Best student paper award (IEEE SCC 2014)
  • Best paper award (CASCON 2002)

Service à la collectivité

conférences publiques

COMITÉ DE PROGRAMME DE 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)

ORGANISMES 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 (2018-2021), coprésident du comité en 2019-2020 et 2020-2021

ÉVALUATEUR EXTERNE (DOCTORAT)

  • Luca Versari de l'Université de Pise, Italie (2021) - dirigé par Roberto Grossi
  • 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 de Lyon 2 (2015) - dirigé par Omar Boussaid.
  • Martin Leginus de l'Université Aalborg (2015) - dirigé par Peter Dolog.
  • Ahmad Taleb de l'Université Concordia (2011) - dirigé par Todd Eavis.

ÉVALUATEUR EXTERNE (PROMOTION)

  • Sabine Loudcher Rabaseda de l'Université Lyon2 - dossier d'habilitation.
  • Jason Sawin de l'Université of St. Thomas.
  • Amer Nizar AbuAli de la Philadelphia University.
  • Jinan Fiaidhi de Lakehead University.

REVUES

  • Editor, Software: Practice and Experience (2021-...). 
  • Distinguished Referee, Software: Practice and Experience, 2018.
  • Associate editor, Heliyon Computer Science (2015-2023).