基于PS3和Cell处理器并行程序编译过程

之前已经用PS3搭建了并行程序开发的实验平台,见,现在开始实践。程序功能很简单,生成6个线程(PS3中只有6个spe可以使用,当然线程数目不限6个),每个线程输出hello world以及线程id。程序如下:

hello_ppu.c
#include <stdio.h>
#include <libspe.h>

extern spe_program_handle_t hello_spu_handle;  

int main()
{
    speid_t id[6];
    int i;
    for (i=0;i<6;i++)
    {
        id[i] = spe_create_thread(0,&hello_spu_handle,NULL,NULL,-1,0);//建立6个线程
    }
    for (i=0;i<6;i++)
    {
        spe_wait(id[i],NULL,0);//等待各个线程结束
    }
    i = spe_count_physical_spes();    //获取可以使用的spe数目
    printf("number of spe available: %d\n",i);
    return 0;
}
   
hello_spu.c
#include <stdio.h>

int main (unsigned long long speid, unsigned long long argp,unsigned long long envp)
{
    printf("0x%x: Hello World!\n",(unsigned int) speid);
    return 0;
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzwyxw.html