Zone des développeurs Intel® :
Coprocesseur Intel® Xeon Phi™

Productivité grâce à l’innovation architecturale associée à des logiciels familiers. Coprocesseur Intel® Xeon Phi™ :

  • Étend la prise en charge matérielle à un plus haut degré de parallélisme avec des économies d’énergie
  • Utilise des modèles de programmation familiers et normalisés pour préserver les investissements
  • Partage la programmation parallèle avec un processeur d’utilisation générale
Avant de vous lancer
Le coprocesseur Intel® Xeon Phi™ est-il adapté à vos besoins ?
Architecture du coprocesseur Intel® Xeon Phi™
Carte du site : Administrateurs, Développeurs
Guides et manuels
Guide de démarrage rapide des développeurs sur le coprocesseur Intel® Xeon Phi™
Manuel de référence de l’architecture du jeu d’instructions du coprocesseur Intel® Xeon Phi™
Guide d’administration système

La programmation parallèle fait partie de l’évolution vers l’avenir. Les processeurs et coprocesseurs Intel offrent une méthode convergée vous permettant d’utiliser des modèles et outils de programmation communs.

  • Modèles de programmation parallèle basés sur des normes adaptés à la programmation d’aujourd’hui et de demain
  • Utilisez des flux de travail de développement et une base de code établis pour vous préparer à l’avenir
  • Les techniques sont bénéfiques pour les processeurs et les coprocesseurs, ce qui préserve les investissements passés et à venir.
Programmation pour les produits multicœurs et à nombreux cœurs
Recettes de code pour le coprocesseur Intel® Xeon Phi™

Programmation

Guide du développeur de logiciels pour coprocesseurs Intel® Xeon Phi™

Créer des applications natives

Programmation et compilation

Aide-mémoire : Directives et fonctions

Fonction de délestage automatique de la bibliothèque Intel® Math Kernel Library

Utilisation d’Intel® MPI

Utilisation des extensions OpenMP*

Conception et programmation OpenCL*

ABI System V

Différences d’arithmétique en virgule flottante

Reproductibilité d’une exécution à l’autre

Analyse et configuration de la consommation électrique

Migration de projets Fortran

Débogage

Débogage sur Linux*

Débogage sur Windows*

Optimisation

Optimisation – 1ère partie : Essentiels

Optimisation – 2ème partie : Événements matériels

Unités de surveillance des performances

Optimisation de la boucle

Meilleures méthodes de performance connues

Vidéos d’ateliers pour développeurs de logiciels

Un guide technique de l’environnement de développement de logiciels pour le coprocesseur Intel® Xeon Phi™

Nom/Description Langage de programmation Niveau d’expérience de l’utilisateur

BeginningSlides_ExtractedCode.zip
Exemples extraits de diapos de l’Atelier d’initiation au coprocesseur Intel® Xeon Phi™, y compris des traductions Fortran.

C++, Fortran Débutant

BeginningLabs_FortranVersion.zip
Exercices de laboratoire pour l’Atelier d’initiation au coprocesseur Intel® Xeon Phi™ – Version Fortran.

Fortran Débutant

BeginningLabs_CVersion.zip
Exercices de laboratoire pour l’Atelier d’initiation au coprocesseur Intel® Xeon Phi™ – Version C++.

C/C++ Débutant

Laboratoires d’ateliers avancés
Laboratoires couvrant des concepts plus avancés, comme Intel® MKL, Intel® MPI, le débogage, l’optimisation de la mémoire, le réglage et la vectorisation.

C/C++, Fortran Avancé

Importance de la vectorisation (exemple Fortran)
Pour obtenir de bonnes performances de l’architecture Intel® MIC (Intel® Many Integrated Core) et des systèmes équipés de coprocesseurs Intel® Xeon Phi™, les applications doivent tirer parti des registres SIMD 16 voies et du traitement à nombreux cœurs.

Fortran Avancé

Les nombreux visages du parallélisme
Ce laboratoire contient de nombreux exemples (sommes de Riemann, SGEMM, Fibonacci, Qsort, décomposition de Cholesky, algorithmes, ensemble de Mandelbrot) décrivant en détails les étapes nécessaires au passage d’un problème série à une solution parallèle exécutée sur un coprocesseur Intel® Xeon Phi™.

C/C++ Avancé

Exemples XE pour Intel® SDK for OpenCL* Applications

OpenCL Débutant, intermédiaire

Conférence des services financiers iXPTC 2013

C/C++ Débutant, intermédiaire

Exercices de laboratoire SHOC MD
Utilisation d'une implémentation simple d'un calcul par paire n corps à l’aide du potentiel Lennard-Jones utilisé en dynamique moléculaire comme exemple de portage et d’optimisation des applications.

C/C++ Débutant, intermédiaire

Structured Parallel Programming: Patterns for Efficient Computation
par Michael McCool, James Reinders et Arch Robison – Date de publication : 9 juillet 2012 | ISBN-10: 0124159931 | ISBN-13: 978-0124159938


Intel® Xeon Phi™ Coprocessor High Performance Programming
par Jim Jeffers et James Reinders – Disponible dès maintenant !


Parallel Programming and Optimization with Intel® Xeon Phi™ Coprocessors
par Colfax International


Intel® Xeon Phi™ Coprocessor Architecture and Tools - The Guide for Application Developers
par Reza Rahman

Cet article contient un recueil croissant de codes communément accessibles ou téléchargeables pouvant être exécutés sur les coprocesseurs Intel® Xeon Phi™.

Si vous avez réalisé une promotion en amont d’un code communautaire, veuillez publier un thème de discussion sur le forum Intel® Many Integrated Core Architecture afin de nous le faire savoir, pour que nous puissions mettre la liste à jour.

Voulez-vous recevoir des notifications lorsque de nouveaux codes sont publiés ? Cliquez sur le bouton « S’abonner » en bas de cette page afin d’être notifié lorsque ce document est mis à jour.

Code (dans l’ordre alphabétique) Description Segment Où télécharger Recette d’installation (le cas échéant)
GEMM, STREAM, Linpack GEMM et Linpack réalisent tous les deux des opérations à matrice dense de base visant à améliorer les performances en virgule flottante sur le coprocesseur. STREAM est un test de largeur de bande mémoire visant à améliorer les performances de la mémoire GDDR. Enseignement Ces bancs d’essai peuvent être obtenus en téléchargeant Intel® Manycore Platform Software Stack (Intel® MPSS) – Ils sont inclus dans les kits de performance, dont l’installation est facultative, qui placent les bancs d’essai et la documentation associé dans /opt/intel/mic/perf pour la version 2.x de MPSS  ou  /usr/share/micperf pour la version 3.1.* de MPSS.

Utilisateurs d’Intel® MPSS 2.1 :  Suivez les directives du Chapitre 5 du fichier Readme d’Intel® MPSS concernant l’installation et la configuration.

Utilisateurs d’Intel® MPSS 3.1 :   Suivez les directives du Chapitre 4 du MPSS_Users_Guide concernant l’installation et la configuration.

Pour STREAM, si vous préférez télécharger la source vous-même, la recette de compilation et d’optimisation se trouve ici

LBS3D Outils de simulation d’écoulements multiphasiques basée sur la méthode d’énergie libre LBM (Lattice Boltzmann Method), importants pour la mécanique des fluides numérique. Le code autorise la simulation d’écoulements à deux phases quasi incompressibles et utilise des modèles multiphasiques autorisant des rapports de densité élevés. Fabrication mplabs

Suivez les instructions de compilation ici

(Reportez-vous également au livre blanc)

Mantevo MiniFE

Mini-application indépendante et autonome qui encapsule les caractéristiques de performance les plus importantes (génération, assemblage, solution) d’une application utilisant une analyse par la méthode des éléments finis implicite en code C++. Le domaine physique est une boîte tridimensionnelle modélisée par des éléments hexaédraux (parfois appelés « briques »). La boîte est discrétisée comme une grille structurée mais traitée comme non structurée. Le domaine est décomposé pour l’exécution parallèle en utilisant une bissection de coordonnées récursive (RCB).

Enseignement mantevo.org > Télécharger

Suivez les directives de cette étude de cas MiniFE pour comprendre quelles balises/options utiliser pour exécuter MiniFE sur l’hôte, le coprocesseur ou les deux

MPI-HMMER

Une version de HMMER, un modèle de Markov caché pour l’analyse des séquences de protéines. Dans cette version, deux routines, hmmsearch et hmmpfam, ont été modifiées pour utiliser MPI pour le parallélisme.

Enseignement

http://mpihmmer.org

Voir cette recette pour la compilation et l’optimisation
SHOC

La suite de bancs d’essai Scalable Heterogeneous Computing (SHOC GitHub) peut être utilisée pour mesurer les performances et la stabilité de systèmes basés sur un coprocesseur. Le banc d’essai a été porté en vue de prendre en charge Intel® Xeon Phi™ en utilisant des structures de programmation de délestage implémentées dans le compilateur Intel® disponible dans le cadre du kit Intel® Composer XE 2013.

Enseignement

GitHub

Voir cette recette pour la configuration et la compilation
WRF Le modèle WRF (Weather Research and Forecasting) est un système de prévision météorologique numérique conçu pour répondre aux besoins de la recherche atmosphérique et de la prévision opérationnelle. Le modèle WRF est utilisé par des scientifiques spécialistes de l’atmosphère dans le cadre universitaire, des équipes de prévision de centres opérationnels, des scientifiques spécialistes des applications, etc. Reportez-vous à http://www.wrf-model.org/index.php pour davantage d’informations sur le modèle WRF. Météorologie, enseignement Page des utilisateurs du modèle WRF Voir cette recette pour la configuration et la compilation
  • Intel® Many Integrated Core Architecture
  • Derniers messages

    Intel Software Tools Webinar Series Archive
    By Abby Wang (Intel)Posted 02/18/20140
    This free webinar series presented tools, tips, and techniques that will help sharpen your development skills on Intel processors/coprocessors including Intel® Xeon® processor and Intel® Xeon Phi™ coprocessor. Intel technical experts as well as open source innovators discuss topics ranging from c...
    Recettes de code pour le coprocesseur Intel® Xeon Phi™
    By adminPosted 02/14/20140
    Cet article contient un recueil croissant de codes communément accessibles ou téléchargeables pouvant être exécutés sur les coprocesseurs Intel® Xeon Phi™. Si vous avez réalisé une promotion en amont d’un code communautaire, veuillez publier un thème de discussion sur le forum Intel® Many Integr...
    Memory Management for Optimal Performance on Intel® Xeon Phi™ Coprocessor: Alignment and Prefetching
    By shuo-li (Intel)Posted 02/03/20140
    Download PDF In this article, we explore the memory management subsystem, specifically alignment and prefetching, and the way it relates to application performance optimization. We start with basic architectural features of the Intel® Xeon Phi™ coprocessor’s (the coprocessor) memory hierarchy a...
    Études de cas et publications externes sur le coprocesseur Intel® Xeon Phi™
    By adminPosted 01/23/20140
    Ceci est une collection de cas de réussite et de publications que nous augmenterons régulièrement alors que nous apprenons comment la technologie de coprocesseur Intel® Xeon Phi™ a été mise en œuvre pour résoudre des problèmes particuliers ou comment les performances ont été obtenues. Ces publica...

    Pages

    S’abonner à
    The difference in creating threads between Phi and GPU
    By Cheng C.7
    Dear all, I heard that "GPU can create threads using hardware, one instruction creating one thread". Does Phi have similar support? For example, when I use OpenMP, can I use some features of Phi to reduce the overhead of creating threads? Thanks very much. 
    Co-processor only fine. But Symmetric & Offload not work.
    By britz09071
    Hello, I want to generate xeon phi workstation using intel MPI. Thus, I've already set up xeon phi and run test code using below thread. http://software.intel.com/en-us/articles/using-the-intel-mpi-library-on-... However, MPI Offload model & Symmetric model is not working with this error message if I run below MPI task. [root@localhost monte_carlo_simulation_code]# mpirun -n 2 -host mic0 /root/montecarlo_mic/montecarlo.mic (I've compiled montecarlo.mic using mpiicc –mmic montecarlo.c -o montecarlo.mic Then, I send montecarlo.mic on mic0(/root/montecarlo)  [mpiexec@montecarlo.mic] HYDU_getfullhostname (./utils/others/others.c:136): getaddrinfo error (hostname: montecarlo.mic, error: Name or service not known) [mpiexec@montecarlo.mic] HYDU_sock_create_and_listen_portstr (./utils/sock/sock.c:999): unable to get local hostname [mpiexec@montecarlo.mic] HYD_pmci_launch_procs (./pm/pmiserv/pmiserv_pmci.c:313): unable to create PMI port [mpiexec@montecarlo.mic] main (./ui/mpich/mpiexe...
    Segfault when offload function and data into xeon phi (SIGSEGV)
    By Mohammed Al Farhan1
    Hi, I have a code running on the CPU and I offload a function, which is being called several times inside a nested loop, into Intel Xeon Phi to be accelerated. In addition to get good performance out of the offloading, Further, I allocated the main data structures out of the offloading section by transferring them to Xeon phi and allocating them once and then at the end of the loop (after the offloading section) I deallocate them, so that I would save time by avoiding copying the data back and forth into the accelerator memory since these data are not being modified inside the offloaded function. However, I am still having bad performance and I realized that this performance comes from the implicit transmission of the data when the offloaded function begins. Therefore, I specified inside the offload paragma of the offloaded function that these data should not be copied into Intel Xeon Phi memory by (nocopy) clause, but I got segmentation fault error (offload error: process on the de...
    VTUNE and VPU hotspot analysis
    By Craig R.0
    I'm using VTUNE to look at the hotspots in my code.  I'm down into the vector instructions and confused by a few things.  I understand that VTUNE isn't a cycle accurate simulator, but why it is that I see things like the following: ... vmovaps %zmm8, %k0, %zmm0 324.718 ms vmovaps %zmm0, %k0, %zmm8 84.007 ms vpslld $0x1f, %zmm2, %k0, %zmm1 96.931 ms vpsrld $0x01, %zmm2, %k0, %zmm2 134.087 ms vpord %zmm2, %zmm1, %k0, %zmm1 143.781 ms vmovaps %zmm9, %k0, %zmm2 245.558 ms vmovaps %zmm21, %k0, %zmm9 75.929 ms ...As far a I can tell there are no data dependencies to prior instructions. Q1: why are the movaps times all over the map? Q2: why is vpssld 30% different than vpslrd? Q3: why is there no indication of a pipeline stall on the vpord (due to the prior vpslld/vpsrld instructions)? Q4: though I can't show it here, all my "CPU time" histogram bars in the source and assem...
    Booting a Non-Linux OS
    By Reto A.6
    I want to boot a non-linux OS on the Xeon Phi. Is there any documentation on that?  From the MPSS User Guide: "The second part of the boot argument indicates to boot a Linux* image. It may also be set to elf to indicate booting a standard ELF format file. Documenting non-Linux* boot is beyond the scope of this document." Is it possible to boot an elf-x86_64 (no unsupported vector instructions used) or does the elf need to be an elf-k1om? What is the entry point of the elf and can it be used to bootstrap the card OS? There are two further questions that arise: - How can the host be informed that the system is ready? - How can the coprocessor OS write to the serial console (which arrives at /dev/ttyMICx on the host) ? It is basically which SBOX registers do I have to set to which values?    Thanks for any replies on the questions.
    Energy consumption big differences for idle energy consumption on CPU and Xeon Phi coprocessor
    By Qingpeng N.5
    I tried to test the idle energy consumption for 10 seconds on Xeon Phi 5110P and  Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz energy consumption.  I found there is a quite difference on total energy consumption for 10 seconds. This is weird.   20.321426 Joules for 10 seconds idle CPU Intel(R) Xeon(R) CPU E5-2650  which is 2.032 Watt.  While the Xeon Phi 5110P is 764.650000 Joules in 10 seconds which 76.465 Watt.  The detail codes and compile method can be downloaded in the following two links.   https://dl.dropboxusercontent.com/u/15385065/energy/cpu_thread.zip https://dl.dropboxusercontent.com/u/15385065/energy/mic-native.zip I use "Total power, win 0 uW" as the parameter for measurements. The code use one pthread to read the power in uW every 50 milliseconds since /sys/class/micras/power updated in around 50 milliseconds. Each time power watt updated, I update the energy with adding 50*power. Anything wrong with this measurement in measuring the total power consumption?  Intel(R) Xe...
    VTune multithreading on multicore
    By Student1
    Hi guys, I am trying to run 8 different threads on 8 different cores. So my CPU time is greater than my elapsed time. One of the threads is taking a very long time when compared to the other 7. These 7 threads are taking up almost the same time with a very minute difference. I have attached a screenshot of this. Can someone please tell me why this one particular thread is taking this extra time?  Thanks!
    Communications between MICs and hosts
    By JS4
    Hi, I am evaluating communications between MICs and host using MPI. I found that the bandwidth results are not bad between MICs, especially between two MICs that attached to different hosts (only ~2.45MB/s). Is it expected? Besides, I notice that there are some lower level communication APIs like SCIF. Will this increase the communication performance in terms of throughput? Normally in what case will people think about using SCIF? I tired to google some sample codes of using SCIF, but only found Intel User Guide. So it seems to me that very few people are really using this. Thanks!

    Pages

    S’abonner à Forums
    Aucun contenu trouvé
    S’abonner à Blogs de la Zone des développeurs Intel®