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. Par exemple, il a travaillé sur les index bitmap et la compression des listes d'entiers. Il s'intéresse aussi au design des bases de données et aux algorithmes probabilistes (par ex. le hachage universel). Il aime poser un regard critique sur l'utilisation des technologies.

Ses travaux sur les index bitmap sont utilisés par des sociétés comme eBay, Facebook, LinkedIn et Netflix dans leurs entrepôts de données, au sein des  plate-formes de mégadonnées telles que Google Procella (base de données de YouTube), Apache Hive, Druid, Apache Spark, Netflix Atlas, LinkedIn Pinot  et Apache Kylin. Son code de compression de données est utilisé par Apache Arrow et Apache Impala. L'outil de contrôle de version Git utilise aussi ces mêmes techniques pour accélérer les requêtes. Ses techniques de compression d'index sont utilisées pour la recherche biomédicale. Certaines de ses techniques ont été adoptées par Apache Lucene, le moteur de recherche derrière des sites comme Wikipedia ou des plateformes comme Solr et Elastic. Un de ses techniques de hachage a été adoptée par Tensorflow de Google pour améliorer les performances. Son algorithme Slope One est une référence dans le domaine des systèmes de recommandation. En 2019, ses travaux de recherche ont fait l'objet d'un article dans le magazine Québec Science, L’intelligence artificielle pour rendre les logiciels plus rapides, ainsi que d'une entrevue à l'émission les Années Lumières de Radio-Canada, Des serveurs informatiques plus rapides et moins énergivores. Avec ses collaborateurs en 2019, il a écrit le parseur JSON le plus rapide au monde (simdjson): JSON est le format standard d'échange de données sur Internet. Le parseur simdjson a montré qu'il est possible de traiter des fichiers JSON à des gigaoctets par seconde sans rien sacrifier. Sa librairie simdjson est un des cents plus populaires projets en C++ de tous les temps sur GitHub. La librairie simdjson est utilisée par Facebook, par Shopify, par Intel, par Microsoft, par Apache Doris et par plusieurs autres systèmes importants tel que Node.js. 

Il est l’auteur de plus de 90 publications arbitrées, incluant plus de 50 articles parus dans des revues internationales. Ses travaux scientifiques furent cités près de 5,000 fois. Il détient des subventions de recherche depuis plus de 15 ans. Il sert régulièrement d'expert au sein des comités de programme de conférences prestigieuses (par ex., ACM CIKM, ACM WSDM, ACM SIGIR, ACM RecSys). 

Il s'investit beaucoup dans le développement de librairies logicielles open source. Il programme régulièrement en C, C++, Java, JavaScript, Python, Swift et Go. Il travaille principalement dans des environnements open source (par ex. Linux). En 2012, il fut récompensé par le Google Open Source Peer Bonus Program.  En février 2019, il était classé en deuxième position dans le monde parmi les développeurs les plus populaires sur GitHub et le plus populaire en C++ (devant Facebook, Google et Microsoft). En 2020, Daniel Lemire était l'un des 100 développeurs les plus suivis sur GitHub. Le site GitHub compte 28 millions de développeurs.

L'algorithme de génération de nombres aléatoires décrit dans son article Fast Random Integer Generation in an Interval a été adopté par le langage Swift, par le langage Go, par le langage Julia, par la librairie C++ (Linux) et par Numpy (Python). L'algorithme décrit dans son article Faster Base64 Encoding and Decoding using AVX2 Instructions est utilisé au sein du langage PHP. L'algorithme décrit dans son article Faster Remainder by Direct Computation: Applications to Compilers and Software Libraries est utilisé au sein de la librairie standard du C# pour accélérer notamment la classe Dictionary.

Son lecteur de nombres à virgule flottante décrit dans l'article Number Parsing at a Gigabyte per Second a été adopté par les langages de programmation C#, Go et Rust, par Apache Arrow, par le navigateur Safari d'Apple, par Yandex ClickHouse, par Microsoft LightGBM, et par plusieurs autres systèmes importants. Les notes de la version Go 1.16 nous informent que "ParseFloat now uses the Eisel-Lemire algorithm, improving performance by up to a factor of 2. This can also speed up decoding textual formats like encoding/json." Les notes de la version Rust 1.55 nous informent que la "standard library's implementation of float parsing has been updated to use the Eisel-Lemire algorithm, which brings both speed improvements and improved correctness". L'algorithme fait partie de la librarie standard C au sein de LLVM. Son approche a été adoptée par C# à compter de .NET7.
 

Daniel Lemire est un des auteurs de la librairie Ada qui est peut-être le parseur d'URL le plus rapide au monde. Ada a amélioré la performance du populaire environnement JavaScript Node.js:

"Since Node.js 18, a new URL parser dependency was added to Node.js — Ada. This addition bumped the Node.js performance when parsing URLs to a new level. Some results could reach up to an improvement of 400%. As a regular user, you may not use it directly. But if you use an HTTP server then it’s very likely to be affected by this performance improvement." (State of Node.js Performance 2023)

Il est un avide utilisateur des médias sociaux : son blogue compte plusieurs dizaines de milliers de lecteurs. Il fut l'un des premiers utilisateurs de twitter où il est suivi par plus de 16 000 personnes : @lemire.

Pendant plusieurs années, il a organisé régulièrement des conférences ouvertes au public à Montréal: tribalab et technolab. Suite aux événements du printemps 2020, les conférences auront lieu principalement en ligne.

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).

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) est professeur 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

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

Publications et communications

Articles de revues avec comité de lecture

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

Keiser, John et Lemire, Daniel (sous presse). On-Demand JSON: A Better Way to Parse Documents?. Software: Practice and Experience.

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

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

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

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; 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).