MétaCan
Menu
Retour à la cohorte
Enregistrement W6981718078

Extended combinatorial testing using graph algorithms and Apache Spark

2021· other· en· W6981718078 sur OpenAlexaboutno aff

Notice bibliographique

RevueConstellation (Université du Québec à Chicoutimi) · 2021
Typeother
Langueen
DomainePsychology
ThématiquePsychotherapy Techniques and Applications
Établissements canadiensnon disponible
Organismes subventionnairesnon disponible
Mots-clésProgrammerHypergraphSoftwareGraphCode (set theory)GeneralizationVertex (graph theory)Expressive power
DOInon disponible

Résumé

récupéré en direct d'OpenAlex

The complexity of our software is greater than ever. Previously, a programmer could know all the instructions of his processor by heart and he created his own applications and games. Now programmers can use multi-language technologies, transcompilers, scripts, native code, and a lot more. Parallel and distributed code also adds a new layer of complexity. And this software, this code, is everywhere in our lives. It’s in our planes, our cars, our thermal power plants, our computers, our phones and so many other places. In order for our lives to unfold as planned, all this programming must therefore be reliable. In the old days, the problems of small programs could be solved by their creator, with a sheet of paper and concentration. Today we use computers, to test computers. All of this brings us to software tests. Directly testing software is the most popular method to gain confidence in its behavior. Combinatorial tests are particularly interesting because it has been observed that in practice, tests of a certain interaction strength are as effective in finding bugs as a brute-force approach which enumerates all the possibilities. Our thesis therefore focuses on combinatorial tests. In particular, we propose a generalization of t-way testing in Φ-way testing, which gives us a better system to add constraints to our tests. Then, by reducing to a graph coloring or hypergraph vertex covering problem, we can take advantage of existing algorithms and methods to solve the problem. Subsequently, we looked at the problem of scalability, because graphs and hypergraphs are memory and cpu intensive. We used the Apache Spark technology, a technology typically used for Big Data processing, to implement distributed algorithms for graphs and hypergraphs. We have made original contributions in the development of these algorithms. We have also created a hybrid algorithm called "Distributed IPOG". We tested these algorithms on a cluster of computers provided by Compute Canada, an organization for Canadian researchers. We compared the results with those calculated by existing tools, to see that our algorithms produce competitive test suites, and can adapt to large sizes of problems. However, these algorithms are slower to execute than non-distributed solutions, which is explained by network latency and the different needs of this technology. In the future, with improvements to distributed technologies and improvements in hardware, we predict that distributed approaches will become even more interesting. Our algorithms, as well as the execution script for the Compute Canada cluster are open-source and available on GitHub with the TSPARK project. \n \nMeme si l’informatique est encore une discipline assez jeune, la complexite de nos logiciels est à present plus grande que jamais. Auparavant, un programmeur pouvait connaitre toutes les instructions de son processeur par coeur et il creait lui-meme ses applications et ses jeux. Maintenant les programmeurs peuvent utiliser des technologies multi-langages, des transcompilateurs, des scripts, du code natif et beaucoup d’autres choses. Le code parallele et distribue ajoute egalement une nouvelle couche de complexite. Et ces logiciels, ce code, est omnipresent dans nos vies. Il est dans nos avions, nos voitures, nos centrales thermiques, nos ordinateurs, nos telephones et dans tellement d’autres endroits. Pour que nos vies puissent se derouler comme prevu, il faut donc que toute cette programmation soit fiable. Autrefois, les problemes des petits programmes pouvaient etre resolus par leur createur, avec une feuille de papier et de la concentration. De nos jours nous devons utiliser des ordinateurs pour tester des ordinateurs. Tout ceci nous amene aux tests. Tester directement un logiciel est la methode la plus repandue pour valider le comportement de celui-ci. Les tests combinatoires sont notamment interessants car il a ete observe qu’en pratique, les tests combinatoires non-exhaustifs sont aussi efficaces pour trouver les bugs qu’une approche de force brute qui enumere toutes les possibilites. Notre these porte donc sur les tests combinatoires. Notamment, nous proposons une generalisation du t-way testing en Φ-way testing, ce qui nous permet d’avoir un meilleur systeme pour ajouter des contraintes aux parametres qu’on teste. Ensuite, en transformant ce probleme NPComplet en un probleme de coloriage de graphe, et en probleme de couverture par ensembles, nous pouvons prendre avantage des methodes existantes pour resoudre ces problemes. Par la suite, nous nous sommes interesses au probleme de la scalabilite, car les graphes et hypergraphes sont gourmands en memoire. Nous avons utilise la technologie Apache Spark, une technologie typiquement utilisee par les entreprises pour faire du traitement de donnees massives, pour implementer des algorithmes distribues pour les graphes et hypergraphes. Nous avons fait des contributions originales dans l’elaboration de ces algorithmes. Nous avons egalement cree un algorithme hybride appele “Distributed IPOG”. Nous avons teste ces algorithmes sur un cluster d’ordinateurs fourni par Calcul Canada, un organisme pour les chercheurs canadiens. Nous avons compare les resultats avec ceux calcules par des outils existants, pour constater que nos algorithmes calculent des solutions de qualite, et peuvent s’adapter a des grandes tailles de problemes. Cependant, ces algorithmes sont plus lents a executer que les solutions non-distribuees, ce qui s’explique par les temps de transport et les besoins differents de cette technologie. Dans le futur, avec les ameliorations aux technologies distribuees et les ameliorations materielles, nous predisons que les approches distribuees deviendront encore plus interessantes. Nos algorithmes, ainsi que le script d’execution pour le cluster de Calcul Canada sont open-source et disponibles sur GitHub avec le projet TSPARK.

Récupéré en direct depuis OpenAlex et désinversé. Les résumés ne sont pas conservés dans cette base de données : les index inversés représentent 8,6 Go des 9,3 Go de texte de la base, et le serveur dispose de 13 Go libres.

Comment cette classification a été obtenuedéplier

Prédiction machine sur la base complète

Imitation des enseignants

Ni prévalence calibrée, ni vérité terrain. Validation humaine à venir. Le volet Gemma est une étiquette directe du modèle pour chaque travail de la base, lue sur la notice réduite au titre. Le volet Codex est un classifieur appris des 10 348 étiquettes directes de Codex et calibré sur les taux pondérés de l'échantillon; les champs sans appui suffisant ne portent aucun appel Codex. Le mode candidate est l'union des deux volets; le consensus est leur intersection. Ces sorties portent le statut machine_predicted_unvalidated et ne sont pas des étiquettes humaines.

score de la tête « metaresearch » (Codex)0,004
score de la tête « metaresearch » (Gemma)0,016
Version: metacan-v3-hybrid-931329e0061cStatut de validation: machine_predicted_unvalidated
Catégories candidatesaucune
Catégories consensuellesaucune
DomaineSignal candidat: aucune · Signal consensuel: aucune
Devis d'étudeSignal candidat: Simulation ou modélisation · Signal consensuel: Simulation ou modélisation
GenreSignal candidat: Méthodes · Signal consensuel: Méthodes
Score de désaccord entre enseignants0,008
Score d'incertitude au seuil0,023

Scores du classifieur distillé par catégorie (deux têtes)

CatégorieCodexGemma
Métarecherche0,0040,016
Méta-épidémiologie (sens strict)0,0010,001
Méta-épidémiologie (sens large)0,0020,003
Bibliométrie0,0020,003
Études des sciences et des technologies0,0010,002
Communication savante0,0030,005
Science ouverte0,0050,004
Intégrité de la recherche0,0010,002
Charge utile insuffisante (le modèle a refusé de juger)0,0070,002

Scores machine (provisoires)

Les deux têtes enseignantes du modèle étudiant, lues sur ce travail. Un score ordonne la base pour la relecture; il n'affirme jamais une catégorie, et le statut de validation accompagne chaque rangée tel quel.

Scores de référence d'un modèle non mature (critères de maturité non atteints, 7 itérations). Un score ordonne; il n'affirme jamais une catégorie.

Tête enseignante Opus0,032
Tête enseignante GPT0,266
Écart entre enseignants0,234 · la distance entre les deux têtes enseignantes sur ce seul travail
Statut de validationscore_only:v0-immature-baseline · tel quel depuis la passe de notation : score_only signifie que le nombre peut ordonner les travaux, et qu'aucune étiquette de catégorie n'en découle

Classification

machine, non validée

Prédiction automatique; un appel candidat d’une seule source (Gemma direct ou Codex distillé), pas un consensus.

Les modèles n’ont appliqué aucune catégorie : rien dans la taxonomie ne correspondait à ce travail.
Devis d'étudeSimulation ou modélisation
Domainenon disponible
GenreMéthodes

Le détail, modèle par modèle et score par score, se trouve en fin de page sous « Comment cette classification a été obtenue ».

En bref

Citations0
Publié2021
Routes d'admission1
Résumé présentoui

Explorer davantage

Même revueConstellation (Université du Québec à Chicoutimi)Même sujetPsychotherapy Techniques and ApplicationsTravaux en français237 207