Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Uso de la computación paralela enOptimization Toolbox

El uso de la computación paralela con procesadores multinúcleo

Si tiene un procesador multinúcleo, es posible que vea la aceleración mediante el procesamiento en paralelo. Puede establecer un grupo paralelo de varios trabajadores con una licencia.Parallel Computing Toolbox™ Para obtener una descripción del software, consulte.Parallel Computing ToolboxGetting Started with Parallel Computing Toolbox (Parallel Computing Toolbox)

Supongamos que tiene un procesador de doble núcleo y desea utilizar la computación paralela:

  • Escriba en la línea de comando. inicia un grupo de trabajadores que utilizan el procesador multinúcleo.

    parpool
    MATLAB® Si anteriormente había establecido un perfil de clúster no predeterminado, puede exigir la computación multinúcleo (local):

    parpool('local')

    Nota

    Dependiendo de sus preferencias, puede iniciar un grupo paralelo automáticamente.MATLAB Para habilitar esta función, consulte.Automatically create a parallel poolHome > Parallel > Parallel Preferences

    • Para el uso de la línea de comandos, escriba

      options = optimoptions('solvername','UseParallel',true);
    • Para la aplicación de optimización, compruebe.Options > Approximated derivatives > Evaluate in parallel

Cuando ejecuta un solucionador aplicable con, los solucionadores aplicables utilizan automáticamente la computación paralela.Opciones

Para dejar de calcular las optimizaciones en paralelo, establecer o establecer la aplicación de optimización para que no se calcule en paralelo.UseParallelfalse Para detener todos los cálculos paralelos, escriba

delete(gcp)

El uso de la computación paralela con una red multiprocesador

Si tiene varios procesadores en una red, utilice funciones yParallel Computing Toolbox MATLABParallel Server™ software para establecer computación paralela. Estos son los pasos a seguir:

  1. Asegúrese de que su sistema esté configurado correctamente para la computación paralela. Consulte con el administrador de sistemas o consulte la documentación.Parallel Computing Toolbox

    Para realizar una comprobación básica:

    1. En la línea de comandos, escriba dónde se encuentra el perfil del clúster.

      parpool(prof)
      prof

    2. Los trabajadores deben poder acceder al archivo de función objetivo y, si procede, al archivo de función de restricción no lineal. Hay dos formas de garantizar el acceso:

      1. Distribuya los archivos a los trabajadores mediante el argumento.parpoolAttachedFiles Por ejemplo, si es el archivo de función objetiva y es el archivo de función de restricción no lineal, escribaobjfun.mconstrfun.m

        parpool('AttachedFiles',{'objfun.m','constrfun.m'});

        Los trabajadores acceden a sus propias copias de los archivos.

      2. Dar una ruta de archivo de red a sus archivos. Si network_file_path es la ruta de acceso de red a los archivos de función objetivo o restricción, introduzca

        pctRunOnAll('addpath network_file_path')

        Los trabajadores acceden a los archivos de función a través de la red.

    3. Compruebe si un archivo está en la ruta de acceso de cada trabajador introduciendo

      pctRunOnAll('which filename')
      Si algún trabajador no tiene una ruta de acceso al archivo, informa
      filename not found.

    • Para el uso de la línea de comandos, escriba

      options = optimoptions('solvername','UseParallel',true);

      donde representa uno de los solucionadores no lineales que admiten la evaluación paralela.'solvername'

    • Para la aplicación de optimización, compruebe.Options > Approximated derivatives > Evaluate in parallel

Después de establecer el entorno de computación paralela, los solucionadores aplicables utilizan automáticamente la computación paralela cuando se les llama.Opciones

Para dejar de calcular las optimizaciones en paralelo, establecer o establecer la aplicación de optimización para que no se calcule en paralelo.UseParallelfalse Para detener todos los cálculos paralelos, escriba

delete(gcp)

Implementar la optimización paralela

Si implementa código que llama a un solucionador de optimización y desea que el solucionador use la computación paralela, asegúrese de crear explícitamente un grupo paralelo en el código. De lo contrario, el código implementado puede fallar en ejecutarse en paralelo y, por lo tanto, ejecutar solo en serie, porque MATLABCompiler™Análisis de dependencia del mismo puede fallar para que la funcionalidad paralela esté disponible. Por ejemplo, llame explícitamente, además de establecer la opción del solucionador en.parpoolUseParalleltrue

Pruebas de cálculos paralelos

Para probar ver si un problema se ejecuta correctamente en paralelo,

  1. Pruebe su problema sin computación paralela para asegurarse de que se ejecuta correctamente en serie. Asegúrese de que esto es exitoso (da resultados correctos) antes de ir a la siguiente prueba.

  2. Establecer en y asegúrese de que no hay ningún grupo paralelo utilizando.UseParalleltruedelete(gcp) Desmarque en así que no crea un pool paralelo.Automatically create a parallel poolHome > Parallel > Parallel PreferencesMATLAB El problema se ejecuta en serie, con iteraciones de bucle en orden inverso desde un bucle.parforfor Asegúrese de que esto es exitoso (da resultados correctos) antes de ir a la siguiente prueba.

  3. Establecer en y crear un grupo paralelo mediante.UseParalleltrueparpool A menos que tenga un procesador multinúcleo o una red configurada, no verá ningún aumento de velocidad. Esta prueba es simplemente verificar la corrección de los cálculos.

Recuerde llamar al solucionador mediante un argumento Options para probar o utilizar la funcionalidad paralela.

Temas relacionados