6 research outputs found

    Experiments to Understand HPC Time to Development (Final report for Department of Energy contract DE-FG02-04ER25633) Report DOE/ER/25633-1

    Get PDF
    In order to understand how high performance computing (HPC) programs are developed, a series of experiments, using students in graduate level HPC classes and various research centers, were conducted at various locations in the US. In this report, we discuss this research, give some of the early results of those experiments, and describe a web-based Experiment Manager we are developing that allows us to run studies more easily and consistently at universities and laboratories, allowing us to generate results that more accurately reflect the process of building HPC programs

    Identifying Domain-Specific Defect Classes Using Inspections and Change History

    No full text
    We present an iterative, reading-based methodology for analyzing defects in source code when change history is available. Our bottom-up approach can be applied to build knowledge of recurring defects in a specific domain, even if other sources of defect data such as defect reports and change requests are unavailable, incomplete or at the wrong level of abstraction for the purposes of the defect analysis. After defining the methodology, we present the results of an empirical study where our method was applied to analyze defects in parallel programs which use the MPI (Message Passing Interface) library to express parallelism. This library is often used in the domain of high performance computing, where there is much discussion but little empirical data about the frequency and severity of defect types. Preliminary results indicate the methodology is feasible and can provide insights into the nature of real defects. We present the results, derived hypothesis, and lessons learned

    Identifying domain-specific defect classes using inspections and change history

    No full text

    Contributions to learning Bayesian network models from weakly supervised data: Application to Assisted Reproductive Technologies and Software Defect Classification

    Get PDF
    162 p.Las técnicas de análisis de datos permitenextraer información de un conjunto de datos. Hoy en día, con la explosión delas nuevas tecnologías, el enorme volumen de datos que una amplia variedadde dispositivos recogen y almacenan no puede ser procesado por medio de lastécnicas clásicas de análisis de datos. Para afrontar esta tarea, la minería dedatos y el aprendizaje automático son dos campos dentro de la inteligenciaartificial que desarrollan métodos computacionales de análisis de datos queaprovechan la capacidad de procesamiento de los ordenadores modernos.Las técnicas de clasificación supervisada se enmarcan dentro del campodel aprendizaje automático. En un problema de clasificación, existe un conjuntode posibles categorías a una de las cuales se asigna cada uno de los casosdel problema. En este contexto, se entiende por aprendizaje el proceso de inferirel mapeo de casos y categorías que se observa en el problema original apartir de un conjunto de casos de ejemplo. Estas técnicas de clasificación sedicen ¿supervisadas¿ porque dicho conjunto de ejemplos lo forman casos delproblema que han sido previamente asignados, uno a uno, a sus respectivascategorías. De esta manera, las técnicas de clasificación supervisada infierenel mapeo a partir de un conjunto de ejemplos completamente categorizado(o etiquetado) y construyen un clasificador que, dado un nuevo caso del problemaaún sin categorizar, es capaz de predecir su pertenencia a una de lasposibles categorías.En esta tesis se explora el problema de la clasificación supervisada cuandolos ejemplos que se aportan no están completamente categorizados. Elconjunto de trabajos que estudian la posibilidad de aprender un clasificadoren este tipo de escenarios son globalmente conocidos como clasificacióndébilmente supervisada o parcialmente etiquetada. El problema clásico declasificación semi-supervisada, donde sólo un subconjunto de los ejemplos estácategorizado, es uno de los primeros ejemplos de este tipo de problemas.Recientemente, el intento de resolver cada vez problemas de clasificaciónpor medio de técnicas de clasificación supervisada ha hecho patente que laobtención de un conjunto de datos completamente supervisado es con frecuenciaimposible o extremadamente difícil. Ante esta situación, diferentesinvestigadores han propuesto técnicas de clasificación débilmente supervisadaespecíficas que les permiten aprovechar toda la información de supervisiónque han podido recoger para su conjunto de ejemplos. La amplia variedadde restricciones que han impedido a los diferentes investigadores recoger unconjunto de ejemplos totalmente categorizado ha multiplicado el número deproblemas de clasificación débilmente supervisada presentados recientementeen la literatura junto con las soluciones propuestas para resolverlos.Nuestra primera propuesta en esta tesis es precisamente una ordenaciónnovedosa del espectro de problemas de clasificación débilmente supervisada.Se trata de una taxonomía con tres ejes donde cada uno de los cuales representauna característica fundamental a la hora de describir un problema declasificación débilmente supervisada. Todos los problemas se pueden identificarpor el tipo de información parcial de supervisión con que se categorizanlos ejemplos con que se aprende el clasificador. Además, en un segundo eje sediscute y visualiza la existencia de problemas de clasificación que permitenal clasificador, una vez aprendido, aprovechar cierta información parcial desupervisión de los ejemplos que debe predecir. El tercer eje de la taxonomíasepara los diferentes problemas según lo que se entiende en cada casoconcreto por ejemplo y categoría. Esta organización del estado del arte permitedescubrir las similitudes y diferencias entre los diferentes problemas declasificación. Alternativamente, el uso de esta taxonomía permite detectar ycaracterizar áreas por explorar, las cuales podrían representar nuevos problemasque todavía no han sido estudiados en la literatura relacionada.La taxonomía propuesta establece un marco general que cubre los diferentesproblemas estudiados en esta tesis. Hasta cuatro problemas diferentes declasificación débilmente supervisada han sido considerados. Todas nuestraspropuestas para abordarlos se basan en el aprendizaje de modelos de clasificaciónprobabilista, en concreto los clasificadores basados en redes Bayesianas(BNCs, por sus siglas en inglés). Esta familia de clasificadores está basadaen la sólida teoría matemática de las redes Bayesianas y los modelos gráficosprobabilísticos. Nuestras técnicas para aprender este tipo de clasificadoresusando un conjunto de datos débilmente supervisado se basan en una estrategiaiterativa conocida como EM (del inglés, expectation-maximization).Una adaptación de esta estrategia clásica para lidiar con la información parcialde supervisión disponible en cada problema estudiado está en la base delas propuestas metodológicas.Aparte de la taxonomía, esta tesis contiene otros cuatro trabajos de investigaciónnovedosos. Dos de ellos son contribuciones metolodógicas que resuelvensendos problemas de clasificación débilmente supervisada: el aprendizajea partir de proporciones de etiquetas (LLP, por sus siglas en inglés) y elaprendizaje con ejemplos etiquetados por múltiples anotadores (CrL).El problema LLP se caracteriza por un conjunto de ejemplos, el cual noha podido ser categorizado, que se divide en subconjuntos. Para cada subconjunto,la información de supervisión de la que se dispone consiste en laproporción de ejemplos que pertenece a cada una de las categorías (etiquetas)posibles. En nuestro trabajo, se considera el coste del aprendizaje en losdiferentes escenarios de este problema de clasificación. Hasta cuatro versionesde un método basado en la estrategia EM, los cuales tratan la incertidumbreen el etiquetado del problema de diversas maneras, son propuestos. Laestrategia EM permite, iterativamente, aprender un modelo a la vez que sedescubre la imputación idónea para las etiquetas de los ejemplos provistos.La primera versión propuesta imputa la etiqueta más probable (de acuerdocon el modelo actual) para cada ejemplo. Una segunda versión, probabilista,asigna cada ejemplo a cada una de las posibles etiquetas con la probabilidadque el modelo devuelve para esa combinación de ejemplo y categoría. La terceraversión está diseñada para lidiar con los escenarios del problema máscostosos, realizando una imputación probabilista aproximada mediante unproceso MCMC (del inglés Markov Chain Monte Carlo). La última versión,la cual se ha demostrado que es la más eficiente y sin diferencias significativascon respecto a la versión probabilista exacta (2), es una combinación de lasversiones 2 y 3 que sólo lleva a cabo la aproximación MCMC en caso de que elcoste de la imputación exacta supere cierto umbral. Este trabajo incluye unestudio experimental de la estabilidad del método ante escenarios del problemacada vez más costosos, así como una comparativa con dos propuestas delestado del arte, ante las cuales nuestro método muestra un comportamientocompetitivo.En la segunda contribución metodológica estudiamos el problema CrL. Eneste caso, la etiqueta real de cada ejemplo es desconocida, pero se disponede las diferentes categorías propuestas por múltiples anotadores de credi-bilidad cuestionable (los anotadores no siempre anotan la etiqueta real delejemplo en cuestión). En este trabajo, estudiamos la robustez de dos estrategiasbásicas que ofrecen resultados competitivos en escenarios del problemabien informados (los anotadores, abundantes en número, son suficientementecompetentes). Centrado en escenarios poco informados, hemos propuestoun método que aprende clasificadores multidimensionales (a cada ejemplo lecorresponde una categoría simultáneamente en diferentes clasificaciones). Unconjunto de pesos codifica la fiabilidad de cada anotador en cada dimensión oglobalmente. Este conjunto de pesos es actualizado iterativamente usando laestrategia EM mediante una de estas dos posibles configuraciones: de acuerdoa la tasa de acierto del anotador considerando las etiquetas predichas porel modelo recientemente aprendido como las reales, o bien, usando la mediade las probabilidades asignadas por el modelo a cada par caso-categoríasetiquetado por el anotador. Mediante una completa experimentación, la configuracióndel método que obtiene mejores resultados ha sido identificada.Además, se ha testado la capacidad del método propuesto para recuperar lafiabilidad real de cada anotador en entornos simulados y se ha comparado endiferentes escenarios con las estrategias básicas estudiadas.La última parte de la tesis consiste en dos trabajos de investigación aplicados,los cuales nos han permitido testar nuestras propuestas metodológicasen entornos reales. El primero de ellos, un estudio de la aplicación de técnicasde clasificación débilmente supervisada para mejorar la tasa de éxito entratamientos de reproducción asistida, ha sido llevado a cabo en colaboracióncon la Unidad de Reproducción Asistida del Hospital Donostia (Gipuzkoa).En el segundo caso, un problema de clasificación de defectos de software extraídosde la plataforma oficial de seguimiento de errores/fallos del softwareCompendium ha sido abordado desde el punto de vista de un problema CrL.El problema de las tecnologías de reproducción asistida (ARTs, por susiglas en inglés) se trata de un ejemplo claro de clasificación débilmente supervisadadebido a la imposibilidad de monitorizar el proceso completo de lareproducción asistida; concretamente, entre la transferencia del óvulo fecundadohasta su implantación e inicio del proceso de gestación. En realidad, latarea es doble. Por un lado, se afronta la tarea de identificar el tratamientoindividualizado para cada mujer (pareja) que maximiza la probabilidad deembarazo. Asimismo, también se aborda la selección de los embriones másprometedores (obtenidos tras extraer y fecundar los óvulos, y cultivarlos hastala formación de embriones). Ambas tareas adquieren un matiz diferente sise consideran antes o después de la transferencia de los embriones al úterode la paciente ¿es entonces cuando se pierde la capacidad de monitorizarel proceso¿ pues la información de supervisión disponible es diferente. Así,cuatro aproximaciones diferentes han sido usadas para resolver parcialmentediferentes aristas de este problema. La primera, predecir la probabilidad deque un tratamiento acabe en embarazo, se ha modelado mediante un problemade clasificación supervisada clásico. Así, técnicas estándar de aprendizajede BNCs han podido ser utilizadas. La segunda aproximación, predecir la posibilidadde que un embrión se implante (e induzca un embarazo), se modelamediante el problema LLP. La metodología presentada en esta misma tesisha sido usada para abordar este problema. Las dos siguientes aproximacionesson equivalentes a las dos anteriores, pero evitan el proceso de implantaciónmodelando un evento del proceso ART previo a la transferencia. Así, la tercerapredice si un tratamiento se ha configurado de una manera idónea paragestar un embarazo y se modela mediante un problema de aprendizaje conejemplos positivos y no-etiquetados (PU, por sus siglas en inglés). Una metodologíadesarrollada previamente en nuestro grupo de investigación paralidiar con este tipo de problemas ha sido aplicada. Finalmente, la cuartaaproximación, que anticipa si un embrión se desarrollará correctamente, hasido modelada mediante otro problema de clasificación débilmente supervisada:el aprendizaje con proporciones de ejemplos positivos y no-etiquetados(PUP), un problema que combina características de los problemas LLP yPU. Algunos resultados clínicamente relevantes se han derivado del análisisde un conjunto de datos recogido por la citada Unidad durante un períodode 18 meses. El rendimiento de los clasificadores aprendidos para predecirla viabilidad de un ciclo (tratamiento de ARTs) es prometedora. Se ha podidoconstatar experimentalmente que los datos referentes a la estimulacióny otros factores del tratamiento son relevantes a la hora de predecir la implantaciónde un embrión. Sin embargo, el proceso de implantación está lejosde ser completamente entendido. En consonancia, de los resultados obtenidostambién se desprende que los datos recogidos para elegir los embriones atransferir determinan más efectivamente el correcto desarrollo de los embrionesque su implantación en caso de ser transferido. De todas formas, el buendesarrollo del embrión es indiscutiblemente un requisito para que un embrióntransferido al útero de una mujer se implante. Por ello, una ordenación másprecisa de los embriones de acuerdo a su probabilidad de desarrollarse espresentada en este trabajo. Este ordenamiento podría ser asimismo usado enun nuevo criterio de selección de embriones a transferir.Del campo de la ingeniería del software nos llega la segunda aplicaciónpráctica, el estudio de la cual constituye la quinta y última contribución deesta tesis. Un conjunto de ejemplos de defectos del software Compendiumregistrados por los usuarios en su sistema de seguimiento de errores ha sidoobtenido y etiquetado por un grupo de anotadores. El etiquetado de este tipode problemas de ingeniería del software es típicamente una tarea subjetivaque implica numerosas y habituales contradicciones entre diferentes anotadores.Por lo tanto, esta aplicación ha sido modelada como un problema CrL conmúltiples clases (categorías) desbalanceadas (no todas aparecen con la mismafrecuencia) y abordado mediante una adaptación de la metodología propuestaen esta misma tesis para el problema CrL. Ésta es una aproximación alproblema de clasificación de defectos novedosa en la literatura relacionada.Además, la metodología de aprendizaje propuesta anteriormente se ha combinadocon dos técnicas ampliamente utilizadas por la comunidad que intentanlidiar con dos dificultades añadidas que caracterizan a esta aplicación real:por un lado, una estrategia que descompone en subproblemas binarios el problemaoriginal con múltiples clases (conocida como weighted OvO) y, por elotro, una técnica de muestreo que intenta mitigar los efectos del desbalanceode las clases (conocida como SMOTEBoost). Estas técnicas han sido exitosamenteadaptadas al entorno CrL. Las diferentes estrategias consideradas hansido testadas en un completo conjunto de experimentos. Para poder valorarel rendimiento de los modelos aprendidos se implementa una de las estrategiasbásicas más robustas, el voto mayoritario (MV, por sus siglas en inglés).Esta estrategia asigna a cada ejemplo la clase mayoritariamente etiquetadapor el conjunto de anotadores, convirtiendo el problema CrL en un problemaclásico de clasificación supervisada para el cual se pueden usar metodologíasestándar de aprendizaje. En general, se aprecia que las metodologías propuestasson competitivas ante la estrategia MV. Cada estrategia cumple sufunción y, de esta manera, se puede observar que el SMOTEBoost adaptadosacrifica en parte el rendimiento global (menor tasa de acierto) para mejorarel rendimiento al predecir las clases minoritarias. La metodología propuestapara el problema CrL es competitiva también para problemas con múltiplesclases, como puede apreciarse en el hecho de que los resultados del weightedOvO rara vez mejoran los de nuestra metodología por sí sola

    Development of An Empirical Approach to Building Domain-Specific Knowledge Applied to High-End Computing

    Get PDF
    This dissertation presents an empirical approach for building and storing knowledge about software engineering through human-subject research. It is based on running empirical studies in stages, where previously held hypotheses are supported or refuted in different contexts, and new hypotheses are generated. The approach is both mixed-methods based and opportunistic, and focuses on identifying a diverse set of potential sources for running studies. The output produced is an experience base which contains a set of these hypotheses, the empirical evidence which generated them, and the implications for practitioners and researchers. This experience base is contained in a software system which can be navigated by stakeholders to trace the "chain of evidence" of hypotheses as they evolve over time and across studies. This approach has been applied to the domain of high-end computing, to build knowledge related to programmer productivity. The methods include controlled experiments and quasi-experiments, case studies, observational studies, interviews, surveys, and focus groups. The results of these studies have been stored in a proof-of-concept system that implements the experience base

    Detecting Dissimilar Classes of Source Code Defects

    Get PDF
    Software maintenance accounts for the most part of the software development cost and efforts, with its major activities focused on the detection, location, analysis and removal of defects present in the software. Although software defects can be originated, and be present, at any phase of the software development life-cycle, implementation (i.e., source code) contains more than three-fourths of the total defects. Due to the diverse nature of the defects, their detection and analysis activities have to be carried out by equally diverse tools, often necessitating the application of multiple tools for reasonable defect coverage that directly increases maintenance overhead. Unified detection tools are known to combine different specialized techniques into a single and massive core, resulting in operational difficulty and maintenance cost increment. The objective of this research was to search for a technique that can detect dissimilar defects using a simplified model and a single methodology, both of which should contribute in creating an easy-to-acquire solution. Following this goal, a ‘Supervised Automation Framework’ named FlexTax was developed for semi-automatic defect mapping and taxonomy generation, which was then applied on a large-scale real-world defect dataset to generate a comprehensive Defect Taxonomy that was verified using machine learning classifiers and manual verification. This Taxonomy, along with an extensive literature survey, was used for comprehension of the properties of different classes of defects, and for developing Defect Similarity Metrics. The Taxonomy, and the Similarity Metrics were then used to develop a defect detection model and associated techniques, collectively named Symbolic Range Tuple Analysis, or SRTA. SRTA relies on Symbolic Analysis, Path Summarization and Range Propagation to detect dissimilar classes of defects using a simplified set of operations. To verify the effectiveness of the technique, SRTA was evaluated by processing multiple real-world open-source systems, by direct comparison with three state-of-the-art tools, by a controlled experiment, by using an established Benchmark, by comparison with other tools through secondary data, and by a large-scale fault-injection experiment conducted using a Mutation-Injection Framework, which relied on the taxonomy developed earlier for the definition of mutation rules. Experimental results confirmed SRTA’s practicality, generality, scalability and accuracy, and proved SRTA’s applicability as a new Defect Detection Technique
    corecore