Fractura

es una biblioteca de utilización multi-núcleo de Java.
Descargar ahora

Fractura Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • GPL
  • Precio:
  • FREE
  • Nombre del editor:
  • Cameron Shelton
  • Sitio web del editor:
  • http://kccoder.com/fracture/

Fractura Etiquetas


Fractura Descripción

Fracture es una biblioteca de utilización multi-núcleo de Java. Fracture es una biblioteca de utilización multi-núcleo de Java. Es una biblioteca de Java que simplifica el desarrollo de múltiples núcleos. Actualmente, esta biblioteca es muy simple, proporcionando una sola clase pública (com.kccoder.fracture.fracture) que contiene los métodos estáticos necesarios para transformar sus bucles de un solo núcleo en bucles de múltiples núcleos con un esfuerzo mínimo. Las futuras versiones proporcionará soluciones para situaciones más complejas, así como revelar los objetos que presentan 'debajo de la capucha' para habilitar soluciones personalizadas. Uso de uso. Fractura de uso Simplemente reemplace un bucle intensivo de CPU con la llamada de método de fractura apropiada. Por ejemplo: para (DiferencionalAcation DEQ: Ecuaciones) {SOLVER (DEQ); } se convierte en fractura. Foreach (ecuaciones, nuevo iProcessor () {Procesamiento de vacíos públicos (DiffectialeCation DEQ) {SOLVER (DEQ);}}); Cabe señalar que hay gastos generales asociados con el uso de la fractura (sincronización y coordinación). Por lo tanto, si resuelve () se ejecuta muy rápidamente o la ejecución total de bucle es muy rápida, experimentará muy poca ganancia en el rendimiento (incluso podría experimentar una degradación). Sin embargo, para tareas suficientemente largas, debe experimentar un aumento considerable en el rendimiento. Se incluyen más ejemplos en la distribución (paquete com.kccoder.fracture.example). Medición del rendimiento La clase de utilidad com.kccoder.fracture.util.methodtimer se proporciona para ayudarlo a cuantificar las ganancias de rendimiento (o pérdidas) exhibidas con el uso de la fractura. Por ejemplo: Público Estático Hecho Main (String [] args) {METHETIMER.COMPAREMETHODS (MandelBrodTexample.Class, "Normalway", "Fractureway"); } Publica Estático Void Normalway () {para (int x = 0; x <1280; x ++) {Mandelbrot (X); }} Vacío estático público Fractureway () {Fracture.Foreach (0, 1280, 1, nuevo iProcessor () {Processelement Public Void (Integer X) {Mandelbrot (X);}}); } produce (en My Core2duo MacBook) Método tomó milis a completEthod Tomó Millis a Complejo Ejecutado veces más rápido que el modo Normalway Core Modeby Fractura predeterminada utiliza todos los núcleos disponibles; Sin embargo, puede configurar la fractura para usar menos núcleos configurando el CoreMode a través de Fracture.SetCorEmode (). Los modos disponibles son bastante autoexplicativos. Las futuras versiones proporcionan opciones de configuración más sofisticadas (y granulares). Se debe tener en cuenta que los objetos referenciados por su iProcessor deben ser seguros de hilos. Por lo tanto, si está poniendo / obteniendo las cosas en / fuera de un mapa, debe sincronizar en ese mapa o usar una versión segura de hilos (pagar los métodos sycnrhonizedx en java.util.collections). Además, la iteración de la iteración, la adición de Independence en Subfey, también deberá asegurarse de que el procesamiento exitoso de la iteración de bucle X no dependa de X-1. Por ejemplo, la siguiente no se puede migrar simplemente a la fractura, ya que cada iteración del bucle depende de iteraciones anteriores: int Fibonacci = 0; int t = 1; para (int n = 0; n <10; n ++) {fibonacci = fibonacci + t; t = fibonacci - t; } Novedades en esta versión: · Esta versión se enfoca en reducir la sobrecarga de la sincronización para los conjuntos de datos que permiten el acceso aleatorio, la adición de casos de prueba de JUnit rudimentarios y algunas refactoras.


Fractura Software relacionado

Axil

Axil es una biblioteca / marco PHP para el desarrollo de sitios web. ...

142

Descargar