Changes between Initial Version and Version 1 of Osaka_Krg


Ignore:
Timestamp:
Sep 4, 2008, 10:01:51 AM (16 years ago)
Author:
rock
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Osaka_Krg

    v1 v1  
     1== 1.Limitation of Running OpenMP in Kerrighed ==
     2 * Features removed temporarily (Form 2.0.0 version)
     3    * KerFS
     4    * Distributed threads
     5    * Checkpoint
     6    * Dynamic streams.
     7 * Solution:
     8    * If we want to use OpenMP in Kerrighed, I think we must...
     9
     10[[BR]]
     11== 2.Kerrighed modules - Source Code Structure Analysis ==
     12=== 2.1 Kerrighed 0.70 Totally 7 Modules ===
     13[[Image(krg0.7arch.png)]]
     14 * Kerrighed extension of Linux Kernel
     15   * Process & load balancing - '''Aragorn'''
     16   * Containers - '''Gandalf'''
     17   * Synchronization - '''Elrond'''
     18   * Ghosts - '''Nazgul'''
     19   * Communication - '''Gimli''', '''Gloin'''
     20   * Tools - '''lluvatar'''
     21
     22==== 2.1.1 Probably the Key modules for this project ====
     23
     24 * '''Gandalf module''': Global memory management -> ('''For Container''')
     25   * /kerrighed-2.3.0/libs/include/kerrighed_tools.h
     26   * /kerrighed-2.3.0/modules/tools/krg_services.h           
     27   * /kerrighed-2.3.0/modules/mm/mmap_handler.h[[BR]]
     28
     29   '''/* Memory Part -> Distributed Shared Memory (DSM) , MPI&OpenMP */'''
     30
     31 * '''Aragon module''': Global process management -> ('''For Migration''')
     32   * /kerrighed-2.3.0/modules/proc/distant_syscalls.c
     33   * /kerrighed-2.3.0/modules/scheduler/mosix_probe.c
     34   * /kerrighed-2.3.0/modules/tools/krg_arch.h
     35   * /kerrighed-2.3.0/modules/rpc/rpcid.h                   
     36   * /kerrighed-2.3.0/modules/epm/fork_delay.c
     37   * /kerrighed-2.3.0/modules/epm/migration.c
     38   * /kerrighed-2.3.0/modules/epm/procfs.c[[BR]]
     39
     40   '''/* Process & Load balancing Part -> MPI , OpenMP */''' [[BR]]
     41
     42   '''Process migration involves two key phases:''' [[BR]]
     43     (1) migration of the process execution context [[BR]]
     44     (2) maintenance of links between the migrated process and the resources [[BR]]
     45     
     46   First task: '''Nazgul module''' ---> second task: '''Gandalf module''' -> container & linker
     47
     48 * '''Elrond module''': Synchronization tools for parallel applications -> ('''For Synchronization''')
     49   * /kerrighed-2.3.0/modules/epm/ghost_process_api.h[[BR]]
     50   
     51   '''/* Synchronization Part -> MPI , OpenMP */''' [[BR]]
     52
     53{{{
     54  Elrond provides distributed locks, barriers, semaphores, and wait condition to processes in a implementation that   
     55  supports process checkpointing as well as migration between nodes.
     56}}}
     57
     58 * '''Gimli''':
     59   * /kerrighed-2.3.0/libs/libkerrighed/libcomm.c
     60   * /kerrighed-2.3.0/libs/include/comm.h
     61   * /kerrighed-2.3.0/libs/include/kerrighed_tools.h
     62   * /kerrighed-2.3.0/modules/arch/um/krg_um.c
     63   * /kerrighed-2.3.0/tools/krg_services.h
     64   * /kerrighed-2.3.0/tools/krg_arch.h
     65   * /kerrighed-2.3.0/modules/fs/kerfs/dir_io_linker.c
     66   * /kerrighed-2.3.0/modules/fs/kerfs/inode_io_linker.c
     67   * /kerrighed-2.3.0/modules/fs/kerfs/file_io_linker.c [[BR]]
     68
     69
     70
     71
     72{{{ 
     73   All these distributed services are based on Gimli for their communications. Gimli is a service providing high
     74   performance communication inside the cluster and a complete abstraction of the communication system to kerrighed that
     75   makes it portable on various interconnection networks.
     76}}}
     77
     78
     79
     80[[BR]]
     81=== 2.2 Kerrighed 2.3.0 Totally 14 Modules ===
     82[[Image(KerrighedArch.png)]]
     83|| RPC               ||               ||
     84|| Hotplug           ||               ||
     85|| KDDM              ||               ||
     86|| Capability        ||               ||
     87|| ProcFS            ||               ||
     88|| Sync              ||               ||
     89|| IPC               ||               ||
     90|| FS                ||               ||
     91|| MM                ||               ||
     92|| Dynamic Streams   ||               ||
     93|| Ghost             ||               ||
     94|| Proc              ||               ||
     95|| EPM               ||               ||
     96|| Global Scheduler  ||               ||
     97 * Load Kerrighed Moudles Messages
     98{{{
     99$ dmesg
     100Start loading Kerrighed...
     101Init Kerrighed worker(s)...Init Kerrighed low-level framework...
     102Init kerrighed syscall mechanism
     103Kerrighed tools - init module
     104TIPC: Started in network mode
     105TIPC: Own node address <1.1.2>, network identity 1
     106Try to enable bearer on lo:<5>TIPC: Enabled bearer <eth:lo>, discovery domain <1.1.0>, priority 10
     107ok
     108Try to enable bearer on eth0:<5>TIPC: Enabled bearer <eth:eth0>, discovery domain <1.1.0>, priority 10
     109ok
     110Try to enable bearer on eth1:<4>TIPC: Bearer <eth:eth1> priority adjustment required 10->9
     111TIPC: Enabled bearer <eth:eth1>, discovery domain <1.1.0>, priority 9
     112ok
     113RPC initialisation done
     114Init Kerrighed low-level framework (nodeid 1) : done
     115Init Kerrighed distributed services...
     116KDDM initialisation : start
     117KDDM set init
     118KDDM set init : done
     119KDDM initialisation done
     120KerMM initialisation : start
     121KerMM initialisation done
     122DVFS initialisation : start
     123FAF: initialisation : start
     124FAF: initialisation : done
     125DVFS initialisation done
     126KerIPC initialisation : start
     127KerIPC initialisation done
     128Proc initialisation: start
     129Proc initialisation: done
     130EPM initialisation: start
     131EPM initialisation: done
     132Init Kerrighed distributed services: done
     133Kerrighed... loaded!
     134TIPC: Established link <1.1.2:eth0-1.1.3:eth0> on network plane B
     135Kerrighed is running on 2 nodes
     136
     137}}}
     138[[BR]]
     139=== 2.3 Private Variables ===
     140 * '''mmap''' (map pages of memory - by adding a MAP_LOCAL flag)
     141   * /kerrighed-2.3.0/libs/include/kerrighed_tools.h
     142   * /kerrighed-2.3.0/modules/tools/krg_services.h
     143   * /kerrighed-2.3.0/modules/mm/mman.h
     144
     145{{{
     146   It is possible to ensure that memory will be allocated in the virtual address space of each thread of the process
     147   without linking it to a container, thus ensuring that no coherence will be maintained between the different copies of 
     148   that memory segment across the different threads.
     149}}}
     150
     151[[BR]]
     152=== 2.4 OpenMP on Kerrighed ===
     153 * Standard '''Pthread''' library replaced by '''krgthread''' library proving the Posix interface on Kerrighed Clusters.
     154 * Containers to support shared variables in the cluster.
     155 * A thread using kerrighed synchronization primitives can migrate and be checkpointed at any time, and except when
     156   blocked in the OS.