r3 - 12 Mar 2014 - 15:56:58 - VictorLacortYou are here: TWiki >  ECiencia Web  >  GridCSICMain > MulticoreQueue

GridHowTo? - Configurar Cola Multicore para ATLAS

Configuración del Batch System

Torque setup

Configuración de los nodos

Nosotros hemos dedicado un nodo a la cola multicore, pero a todo nodo que se quiera configurar para correr trabajos 'multicore' hay que darle algún atributo que los diferencie de los nodos que procesan trabajos 'monocore', usando el siguiente comando en el servidor Torque:
qmgr -c 's n NODO properties = "PROPIEDAD"'

Usamos la propiedad lcgpro para los nodos de las colas monocore, y la propiedad lcgproMP para los nodos de la cola multicore:

qmgr -c 's n wnXYZ.ific.uv.es properties = "lcgproMP" '

Configuración del servidor

Pasamos ahora a crear la cola, haciendo después hincapié en los parámetros relevantes para multiprocesamiento. Los valores en los parámetros 'max_queuable' y 'max_running' dependerán de la cantidad de nodos dedicados a la cola, que hemos llamado atlasMP:
[root@ce05 ~] # qmgr
Qmgr: create queue atlasMP
Qmgr: set queue atlasMP queue_type = Execution
Qmgr: set queue atlasMP max_queuable = 20
Qmgr: set queue atlasMP max_running = 2
Qmgr: set queue atlasMP resources_max.cput = 48:00:00
Qmgr: set queue atlasMP resources_max.procct = 8
Qmgr: set queue atlasMP resources_max.walltime = 06:30:00
Qmgr: set queue atlasMP resources_default.cput = 48:00:00
Qmgr: set queue atlasMP resources_default.neednodes = lcgproMP
Qmgr: set queue atlasMP resources_default.nodes = 1:ppn=8
Qmgr: set queue atlasMP resources_default.procct = 1
Qmgr: set queue atlasMP resources_default.walltime = 06:30:00
Qmgr: set queue atlasMP acl_group_enable = False
Qmgr: set queue atlasMP acl_groups = atlas
Qmgr: set queue atlasMP acl_groups += atlp
Qmgr: set queue atlasMP acl_groups += atls
Qmgr: set queue atlasMP acl_groups += atlx
Qmgr: set queue atlasMP acl_groups += dteam
Qmgr: set queue atlasMP acl_groups += ops
Qmgr: set queue atlasMP acl_groups += opsx
Qmgr: set queue atlasMP enabled = True
Qmgr: set queue atlasMP started = True
Qmgr: exit 

Algunos parámetros merecen comentarios:

  • set queue atlasMP resources_default.neednodes = lcgproMP: Esta línea especifica que los nodos miembros de esta cola deben tener asignado el valor lcgproMP en el atributo 'properties', según indicamos antes en la configuración de los nodos para la cola.
  • set queue atlasMP resources_default.procct = 1: La intención es poder correr jobs que necesiten menos cores que el máximo definido.
  • set queue atlasMP resources_max.procct = 8: Es el máximo número de cores que los jobs podrán reservar.
  • set queue atlasMP resources_default.nodes = 1:ppn=8: Indica a los jobs que los cores reservados han de pertenecer todos al mismo nodo, pues no es un sistema NUMA estricto como puede ser una configuración para correr jobs MPI, y el máximo de cores por job coincide con el número de cores por nodo.

Aproximaciones al tiempo máximo de CPU y Walltime

En cuanto a los límites temporales, vendrán definidos por el tipo de jobs que se quieran correr. Los requerimientos de ATLAS sobre el Walltime son N veces superiores al Walltime de los jobs monocore, cuando N es el máximo número de cores que los jobs multicore pueden reservar, con la intención de procesar jobs con una carga de trabajo N veces superior en términos de uso de recursos computacionales. En cuanto al CPUtime, hay que considerar que el tiempo total será igual a la suma de los tiempos de CPU de cada core, con lo cual será N veces superior al CPUtime de las colas monocore. Esta es la primera aproximación:
set queue atlasMP resources_max.cput = 384:00:00:00      #El valor de tiempo de CPU en monocore se multiplica por N cores: 8 x 48:00:00 (valor monocore) = 384:00:00:00
set queue atlasMP resources_max.walltime = 52:00:00:00   #El mismo de Walltime valor que en las colas monocore

Otra aproximación, la que inicialmente desplegamos, fue contar con que la carga de trabajo computacional de los jobs multicore y los monocore es la misma, con la diferencia de que al contar con N veces más procesadores, estos mismos trabajos terminarían en un tiempo N veces inferior. Así:

set queue atlasMP resources_max.cput = 48:00:00:00       #El valor de CPUtime permanece igual que en las colas monocore
set queue atlasMP resources_max.walltime = 06:30:00:00   #Valor Walltime en monocore dividido entre N cores: 52:00:00:00 / 8 -> 06:30:00:00

En resumen, en la primera aproximación mantenemos el Walltime de las colas monocore y aumentamos el CPUtime en un factor N (máximo número de cores por trabajo), mientras que en la segunda aproximación hacemos al contrario, mantener el CPUtime de la cola monocore y disminuir en un factor N el Walltime. Es fácil reajustar los valores definidos en la cola para estas dos aproximaciones o cualquier otra, incluso especificando recursos de memoria y uso de disco para obtener una granuralidad más fina.

Configuración del Sistema de Información

LDAP (BDII) setup

Para publicar la nueva cola adecuadamente hay que modificar la información de algunos ficheros *.ldif del 'bdii resource-level', situados en este caso en el CE que gestiona la cola. La nueva información es similar a la de otras colas creadas con anterioridad, y los ficheros donde añadir información son (en la ruta '/var/lib/bdii/gip/ldif'):

  • ComputingShare?.ldif
  • static-file-CESEBind.ldif
  • static-file-CE.ldif
  • static-file-Cluster.ldif -> En este fichero solamente añadimos la cadena que identifica unívocamente la cola (CREAMCEId), en los atributos 'GlueForeignKey' y 'GlueClusterService'.

La información de la cola para añadir en los ficheros se reparte de la siguiente manera:

ComputingShare.ldif:

dn: GLUE2ShareID=atlasMP_atlas_ce05.ific.uv.es_ComputingElement,GLUE2ServiceID=ce05.ific.uv.es_ComputingElement,GLUE2GroupID=resource,o=glue
objectClass: GLUE2Entity
objectClass: GLUE2Share
objectClass: GLUE2ComputingShare
GLUE2ShareID: atlasMP_atlas_ce05.ific.uv.es_ComputingElement
GLUE2ShareDescription: Share of atlasMP for atlas
GLUE2EntityCreationTime: 2012-12-14T10:47:44Z
GLUE2EntityOtherInfo: CREAMCEId=ce05.ific.uv.es:8443/cream-pbs-atlasMP
GLUE2EntityOtherInfo: InfoProviderName=glite-ce-glue2-share-static
GLUE2EntityOtherInfo: InfoProviderVersion=1.0
GLUE2EntityOtherInfo: InfoProviderHost=ce05.ific.uv.es
GLUE2ComputingShareMappingQueue: atlasMP
GLUE2ComputingShareServingState: production
GLUE2ComputingShareDefaultCPUTime: 999999999
GLUE2ComputingShareMaxCPUTime: 999999999
GLUE2ComputingShareDefaultWallTime: 999999999
GLUE2ComputingShareMaxWallTime: 999999999
GLUE2ComputingShareMaxRunningJobs: 999999999
GLUE2ComputingShareRunningJobs: 0
GLUE2ComputingShareTotalJobs: 0
GLUE2ComputingShareFreeSlots: 0
GLUE2ComputingShareWaitingJobs: 444444
GLUE2ComputingShareEstimatedAverageWaitingTime: 2146660842
GLUE2ComputingShareEstimatedWorstWaitingTime: 2146660842
GLUE2ShareResourceForeignKey: ce05.ific.uv.es
GLUE2ComputingShareExecutionEnvironmentForeignKey: ce05.ific.uv.es
GLUE2ShareEndpointForeignKey: ce05.ific.uv.es_org.glite.ce.CREAM
GLUE2ComputingShareComputingEndpointForeignKey: ce05.ific.uv.es_org.glite.ce.CREAM
GLUE2ShareServiceForeignKey: ce05.ific.uv.es_ComputingElement
GLUE2ComputingShareComputingServiceForeignKey: ce05.ific.uv.es_ComputingElement

dn: GLUE2PolicyID=atlasMP_atlas_ce05.ific.uv.es_ComputingElement_policy,GLUE2ShareId=atlasMP_atlas_ce05.ific.uv.es_ComputingElement,GLUE2ServiceID=ce05.ific.uv.es_ComputingElement,GLUE2GroupID=resource,o=glue
objectClass: GLUE2Entity
objectClass: GLUE2Policy
objectClass: GLUE2MappingPolicy
GLUE2PolicyID: atlasMP_atlas_ce05.ific.uv.es_ComputingElement_policy
GLUE2EntityCreationTime: 2012-12-14T10:47:44Z
GLUE2PolicyScheme: org.glite.standard
GLUE2PolicyRule: VO:atlas
GLUE2PolicyUserDomainForeignKey: atlas
GLUE2MappingPolicyShareForeignKey: atlasMP_atlas_ce05.ific.uv.es_ComputingElement

static-file-CESEBind.ldif:

dn: GlueCESEBindGroupCEUniqueID=ce05.ific.uv.es:8443/cream-pbs-atlasMP,mds-vo-name=resource,o=grid
objectClass: GlueGeneralTop
objectClass: GlueCESEBindGroup
objectClass: GlueSchemaVersion
GlueCESEBindGroupCEUniqueID: ce05.ific.uv.es:8443/cream-pbs-atlasMP
GlueCESEBindGroupSEUniqueID: srmv2.ific.uv.es
GlueSchemaVersionMajor: 1
GlueSchemaVersionMinor: 3

dn: GlueCESEBindSEUniqueID=srmv2.ific.uv.es,GlueCESEBindGroupCEUniqueID=ce05.ific.uv.es:8443/cream-pbs-atlasMP,mds-vo-name=resource,o=grid 
objectClass: GlueGeneralTop
objectClass: GlueCESEBind
objectClass: GlueSchemaVersion
GlueCESEBindSEUniqueID: srmv2.ific.uv.es
GlueCESEBindCEAccesspoint: /lustre/ific.uv.es/grid,/lustre/ific.uv.es/grid
GlueCESEBindCEUniqueID: ce05.ific.uv.es:8443/cream-pbs-atlasMP
GlueCESEBindMountInfo: /lustre/ific.uv.es/grid,/lustre/ific.uv.es/grid
GlueCESEBindWeight: 0
GlueSchemaVersionMajor: 1
GlueSchemaVersionMinor: 3

static-file-CE.ldif:

dn: GlueCEUniqueID=ce05.ific.uv.es:8443/cream-pbs-atlasMP,mds-vo-name=resource,o=grid
objectClass: GlueCETop
objectClass: GlueCE
objectClass: GlueCEAccessControlBase
objectClass: GlueCEInfo
objectClass: GlueCEPolicy
objectClass: GlueCEState
objectClass: GlueInformationService
objectClass: GlueKey
objectClass: GlueSchemaVersion
GlueCEUniqueID: ce05.ific.uv.es:8443/cream-pbs-atlasMP
GlueCEHostingCluster: ce05.ific.uv.es
GlueCEName: atlasMP
GlueCEImplementationName: CREAM
GlueCEImplementationVersion: 1.14.5
GlueCEInfoGatekeeperPort: 8443
GlueCEInfoHostName: ce05.ific.uv.es
GlueCEInfoLRMSType: torque
GlueCEInfoLRMSVersion: not defined
GlueCEInfoTotalCPUs: 0
GlueCEInfoJobManager: pbs
GlueCEInfoContactString: https://ce05.ific.uv.es:8443/ce-cream/services
GlueCEInfoApplicationDir: /lustre/ific.uv.es/sw
GlueCEInfoDataDir: unset
GlueCEInfoDefaultSE: srmv2.ific.uv.es
GlueCEStateEstimatedResponseTime: 2146660842
GlueCEStateFreeCPUs: 0
GlueCEStateRunningJobs: 0
GlueCEStateStatus: Production
GlueCEStateTotalJobs: 0
GlueCEStateWaitingJobs: 444444
GlueCEStateWorstResponseTime: 2146660842
GlueCEStateFreeJobSlots: 0
GlueCEPolicyMaxCPUTime: 999999999
GlueCEPolicyMaxRunningJobs: 999999999
GlueCEPolicyMaxTotalJobs: 999999999
GlueCEPolicyMaxWallClockTime: 999999999
GlueCEPolicyMaxObtainableCPUTime: 999999999
GlueCEPolicyMaxObtainableWallClockTime: 999999999
GlueCEPolicyMaxWaitingJobs: 999999999
GlueCEPolicyMaxSlotsPerJob: 999999999
GlueCEPolicyPreemption: 0
GlueCEPolicyPriority: 1
GlueCEPolicyAssignedJobSlots: 0
GlueForeignKey: GlueClusterUniqueID=ce05.ific.uv.es
GlueInformationServiceURL: ldap://ce05.ific.uv.es:2170/mds-vo-name=resource,o=grid
GlueSchemaVersionMajor: 1
GlueSchemaVersionMinor: 3
GlueCECapability: CPUScalingReferenceSI00=2301
GlueCECapability: Share=atlas:100
GlueCEAccessControlBaseRule: VO:atlas
GlueCEAccessControlBaseRule: VOMS:/atlas/Role=production
GlueCEAccessControlBaseRule: VOMS:/atlas/Role=lcgadmin
GlueCEAccessControlBaseRule: VOMS:/atlas/Role=software
GlueCEAccessControlBaseRule: VOMS:/atlas/Role=pilot

dn: GlueVOViewLocalID=atlas,GlueCEUniqueID=ce05.ific.uv.es:8443/cream-pbs-atlasMP,mds-vo-name=resource,o=grid
objectClass: GlueCETop
objectClass: GlueVOView
objectClass: GlueCEInfo
objectClass: GlueCEState
objectClass: GlueCEAccessControlBase
objectClass: GlueCEPolicy
objectClass: GlueKey
objectClass: GlueSchemaVersion
GlueVOViewLocalID: atlas
GlueCEStateRunningJobs: 0
GlueCEStateWaitingJobs: 444444
GlueCEStateTotalJobs: 0
GlueCEStateFreeJobSlots: 0
GlueCEStateEstimatedResponseTime: 2146660842
GlueCEStateWorstResponseTime: 2146660842
GlueCEInfoDefaultSE:  srmv2.ific.uv.es
GlueCEInfoApplicationDir:  /cvmfs/atlas.cern.ch/repo/sw
GlueCEInfoDataDir: unset
GlueChunkKey: GlueCEUniqueID=ce05.ific.uv.es:8443/cream-pbs-atlasMP
GlueCEAccessControlBaseRule: VO:atlas
GlueSchemaVersionMajor: 1
GlueSchemaVersionMinor: 3

static-file-Cluster.ldif:

GlueForeignKey: ...
GlueForeignKey: GlueCEUniqueID=ce05.ific.uv.es:8443/cream-pbs-atlasMP
GlueForeignKey: ...

GlueClusterService: ...
GlueClusterService: ce05.ific.uv.es:8443/cream-pbs-atlasMP
GlueClusterService: ...

-- VictorLacort - 11 Mar 2014

Edit | WYSIWYG | Attach | PDF | Raw View | Backlinks: Web, All Webs | History: r3 < r2 < r1 | More topic actions
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback