Michael Dawson

Ottawa, Ontario, Canada Contact Info
928 followers 500+ connections

Join to view profile

About

Full resume available at: https://github.com/mhdawson/resume/blob/master/resume.pdf (a…

Experience & Education

  • Red Hat

View Michael’s full experience

See their title, tenure and more.

or

By clicking Continue to join or sign in, you agree to LinkedIn’s User Agreement, Privacy Policy, and Cookie Policy.

Publications

  • Dynamic Monitor Allocation in the Java Virtual Machine

    JTRES

    Other authors
  • Experiences in building and scaling an enterprise application on multicore systems

    Concurrency and Computation: Practice and Experience / Wiley

    Even though Java is the de facto programming language for enterprise applications, there exist only a limited number of Java-based benchmarks to understand the performance on emerging multicore systems. To bridge this gap, this paper presents a report generation benchmark that is developed on top of Open Source Apache Geronimo's DayTrader benchmark. Report generation and rendering is at the heart of many enterprise business analytics and business intelligence software products, and it is used…

    Even though Java is the de facto programming language for enterprise applications, there exist only a limited number of Java-based benchmarks to understand the performance on emerging multicore systems. To bridge this gap, this paper presents a report generation benchmark that is developed on top of Open Source Apache Geronimo's DayTrader benchmark. Report generation and rendering is at the heart of many enterprise business analytics and business intelligence software products, and it is used by many enterprise applications. We evaluate the performance scalability of this benchmark on a state-of-the-art Power7 multicore system with 8 Power7 cores and 32 hardware threads. The benchmark throughput scales linearly up to eight hardware threads, but beyond that point, the throughput falls sharply. Significant locking in the Java class libraries for non-shared objects results in this performance drop. Splitting the locks on these shared classes results in near linear scaling from eight to 32 threads and improved the throughput by 80%. We also show that the Linux operating system load balancing could result in a degraded application performance in hardware multithreaded systems and simultaneous-multithreads-aware task scheduling results in uniform core-resource utilization as well as improved application performance. Copyright © 2011 John Wiley & Sons, Ltd.

    Other authors
    • Seetharami Seelam
    • Yanbin Liu
    • Parijat Dube
    • Megumi Ito
    • Deniz Binay
    • Liana Fong
    • Michel Hack
    • Xiaoqiao Meng
    • Yuqing Gao
    See publication

Patents

  • System, Method and Program Product for Native Interface Optimization of Read-Only Arrays

    Issued US 2011/0321043

    A computer-implemented process, system and program product for remote array processing receives a requested array in a remote execution container, generates a fingerprint of the requested array, bundles the fingerprint with the requested array and returns a pointer to array elements of the requested array to a caller. The computer-implemented process further receives a call to release the requested array from the caller to form a received release, determines, using the fingerprint, whether the…

    A computer-implemented process, system and program product for remote array processing receives a requested array in a remote execution container, generates a fingerprint of the requested array, bundles the fingerprint with the requested array and returns a pointer to array elements of the requested array to a caller. The computer-implemented process further receives a call to release the requested array from the caller to form a received release, determines, using the fingerprint, whether the requested array has been modified and responsive to a determination that the array has been modified, sending a call to release the requested array to a virtual machine and responsive to a determination that the array has not been modified, not sending a call to release the requested array to a virtual machine.

    See patent
  • Distributed Management of Native Interface Metadata and Arrays

    Issued US 20110078709

    An illustrative embodiment provides a computer-implemented process for distributed management of native interface arrays. The computer-implemented process obtains an array type native interface call in a first system from a caller in a second system, identifies an array type of the array type native interface call to form an identified array type, and requests array elements associated with the identified array type to form requested array elements, wherein added metadata is associated with the…

    An illustrative embodiment provides a computer-implemented process for distributed management of native interface arrays. The computer-implemented process obtains an array type native interface call in a first system from a caller in a second system, identifies an array type of the array type native interface call to form an identified array type, and requests array elements associated with the identified array type to form requested array elements, wherein added metadata is associated with the requested array elements. The computer-implemented process builds an enhanced data structure using the requested array elements and the associated added metadata and returns a pointer within the enhanced data structure to the caller. The pointer can be used by the caller to manipulate array data of the array elements, and the first system can calculate an address of the added metadata in constant time from the pointer.

    See patent
  • Hidden automatic data mirroring for native interfaces in distributed virtual machines

    Filed US 20130145362

    An initial request for a reference to a data container is sent from a distributed enhanced remote execution container native interface component of a distributed virtual machine to a distributed enhanced virtual machine native interface component of the distributed virtual machine in response to receipt of the initial request from a remote execution container. A data mirror data structure including immutable data and the reference to the data container is received. The received data mirror data…

    An initial request for a reference to a data container is sent from a distributed enhanced remote execution container native interface component of a distributed virtual machine to a distributed enhanced virtual machine native interface component of the distributed virtual machine in response to receipt of the initial request from a remote execution container. A data mirror data structure including immutable data and the reference to the data container is received. The received data mirror data structure including the immutable data and the reference to the data container is stored within a local memory storage area. A reference to the locally-stored data mirror data structure is returned to the remote execution container in response to the initial request for the reference to the data container.

    See patent
  • Running multiple copies of native code in a Java virtual machine

    Filed US 20120266147

    A method for running multiple copies of the same native code in a Java Virtual Machine is described. In one embodiment, such a method includes providing a class to enable segregating multiple copies of the same native code. The method defines, within the class, a native method configured to dispatch operation of the native code. The method further includes generating first and second instances of the class. Calling the native method in the first instance causes a first copy of the native code…

    A method for running multiple copies of the same native code in a Java Virtual Machine is described. In one embodiment, such a method includes providing a class to enable segregating multiple copies of the same native code. The method defines, within the class, a native method configured to dispatch operation of the native code. The method further includes generating first and second instances of the class. Calling the native method in the first instance causes a first copy of the native code to run in a first remote execution container (e.g., a first process). Similarly, calling the native method in the second instance causes a second copy of the native code to run in a second remote execution container (e.g., a second process) separate from the first remote execution container. A corresponding computer program product is also disclosed.

    See patent

Languages

  • English

    Native or bilingual proficiency

  • French

    Limited working proficiency

View Michael’s full profile

  • See who you know in common
  • Get introduced
  • Contact Michael directly
Join to view full profile

Other similar profiles

Explore collaborative articles

We’re unlocking community knowledge in a new way. Experts add insights directly into each article, started with the help of AI.

Explore More

Others named Michael Dawson in Canada

Add new skills with these courses