小编max*_*max的帖子

如何使用Linux Work Queue

Linux工作队列是具有进程上下文的内核级线程.我试图用它作为kthread的替代品,它没有特定的进程上下文.但是如何将数据传递到工作队列?work_struct有一个数据字段,类型为atomic_long_t.我无法将指针传递给此字段.我该怎么做?

另外,我找不到工作队列的单个具体示例.你能建议吗?

kernel linux-kernel

13
推荐指数
1
解决办法
3万
查看次数

CUDA __device__未解析的extern函数

我试图了解如何__device__在单独的头文件中解耦CUDA 代码.

我有三个文件.

文件:1:int2.cuh

#ifndef INT2_H_
#define INT2_H_

#include "cuda.h"
#include "cuda_runtime.h"
#include "device_launch_parameters.h"

__global__ void kernel();
__device__ int k2(int k);

int launchKernel(int dim);

#endif /* INT2_H_ */
Run Code Online (Sandbox Code Playgroud)

文件2:int2.cu

#include "int2.cuh"
#include "cstdio"

__global__ void kernel() {
    int tid = threadIdx.x;
    printf("%d\n", k2(tid));
}

__device__ int k2(int i) {
    return i * i;
}

int launchKernel(int dim) {
    kernel<<<1, dim>>>();
    cudaDeviceReset();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

文件3:CUDASample.cu

include <stdio.h>
#include <stdlib.h>
#include "int2.cuh"
#include "iostream"

using namespace std;

static const …
Run Code Online (Sandbox Code Playgroud)

c c++ cuda linker-errors

11
推荐指数
1
解决办法
9866
查看次数

使用ggplot2的多个传说

我试图在同一个图上绘制多组数据.例如,下面,我有两组设置实验:"P-0.1"和"P-0.2",如因子B所示.对于每个实验,我有三个输出值"P","Q","O" ",如因子A所示.我按填充颜色对实验进行分组,并按颜色,线型和形状对输出进行分组.

library(ggplot2)

dat <- data.frame(
    A = factor(c("O", "O", "P", "P", "Q", "Q", "O", "O", "P", "P", "Q", "Q"), levels=c("O", "O", "P", "P", "Q", "Q","O", "O", "P", "P", "Q", "Q")),
    B = factor(c("P-0.1", "P-0.1", "P-0.1", "P-0.1","P-0.1", "P-0.1",  "P-0.2", "P-0.2", "P-0.2", "P-0.2", "P-0.2", "P-0.2"), levels = c("P-0.1", "P-0.1", "P-0.1", "P-0.1","P-0.1", "P-0.1",  "P-0.2", "P-0.2", "P-0.2", "P-0.2", "P-0.2", "P-0.2")),
    X = c( 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1),
    Y = c(10, 15, 12, 13, 9, 14, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

10
推荐指数
1
解决办法
6271
查看次数

ggplot减少图例中的线宽

我正在尝试使用ggplot2控制图

示例脚本:

dat1 <- data.frame(
     sex = factor(c("Female","Female","Male","Male")),
     time = factor(c("Lunch","Dinner","Lunch","Dinner"), levels=c("Lunch","Dinner")),
     total_bill = c(13.53, 16.81, 16.24, 17.42)
)
p = ggplot(data=dat1, aes(x=sex, y=total_bill, group=time, shape=time, color=time)) + geom_line() + geom_point()
Run Code Online (Sandbox Code Playgroud)

现在,我要控制形状和线条在图例中的外观。我想要更大的形状,并且传奇中的细线。但是我不能同时执行两者。

如果我做,

p = p + guides(colour = guide_legend(override.aes = list(size=5)))
Run Code Online (Sandbox Code Playgroud)

线条和形状都较粗,类似于图B。

如果我做,

p = p + guides(colour = guide_legend(override.aes = list(size=5,linetype=0)))
Run Code Online (Sandbox Code Playgroud)

然后形状以正确的大小出现,但线条消失(图A)。我尝试了类似的尝试,但未成功。

p = p + guides(colour = guide_legend(override.aes = list(size=5,linetype=0.5)))
Run Code Online (Sandbox Code Playgroud)

例

如何在图例中实现大形状和细线?

r legend ggplot2

6
推荐指数
1
解决办法
1501
查看次数

用户空间和内核线程之间的共享内存

我正在开发一个涉及kthreads的内核应用程序.我创建了一个结构数组,并在用户空间中使用malloc分配内存.然后我调用系统调用(我实现了)并将数组的地址传递给内核空间.在系统调用的处理程序中我创建了我创建2个kthreads来监视数组.kthread可以更改某些值,用户空间线程也可以更改某些值.我们的想法是将数组用作共享内存.但有些当我在内核空间中访问内存时(使用copy_from_user),数据会以某种方式被更改.我可以在分配时和内核中验证地址是否相同.但是当使用copy_from_user时,它会提供垃圾值等各种值.

还有以下说法好吗?

int kthread_run_function(void* data){
    struct entry tmp;
    copy_from_user(&tmp, data, sizeof(struct entry));
}
Run Code Online (Sandbox Code Playgroud)

kernel linux-kernel

5
推荐指数
1
解决办法
3787
查看次数

C#.NET WebService 返回对象

我正在使用 ASP.NET C# 创建一个 Web 服务。我从网络服务发送各种数据类型,所以我使用以下结构。

public enum WS_ServiceResponseResult
{
    Success,
    Failure,
}
public class WS_ServiceResponse
{
    public WS_ServiceResponseResult result { get; set; }
    public object data { get; set; }
}

public class WS_User
{
    public long id{ get; set; }
    public string name{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

网络服务示例方法

    [WebMethod(EnableSession = true)]
    public WS_ServiceResponse LogIn(string username, string pasword)
    {
        WS_ServiceResponse osr = new WS_ServiceResponse();
        long userID = UserController.checkLogin(username, pasword);

        if (userID != 0)
        {
            osr.result = WS_ServiceResponseResult.Success;
            osr.data = …
Run Code Online (Sandbox Code Playgroud)

c# web-services

3
推荐指数
1
解决办法
3万
查看次数

如何使用mmap共享用户空间和内核线程

我找不到一些合适的例子来解决我的问题.我想在用户和内核空间之间共享4K(4096)字节的数据.我发现很多想法都说我必须从内核中分配内存并在用户空间中对其进行mmap.有人可以提供一个如何在Linux 2.6.38中执行此操作的示例.有没有什么好的文件可以解释它?

提前致谢.

kernel mmap linux-kernel

3
推荐指数
1
解决办法
4298
查看次数

在 Spark 中为每个 Executor 创建数组并组合成 RDD

我正在从基于 MPI 的系统转向 Apache Spark。我需要在 Spark 中执行以下操作。

假设,我有n顶点。我想从这些n顶点创建一个边列表。边只是两个整数 (u,v) 的元组,不需要属性。

但是,我想在每个执行程序中独立地并行创建它们。因此,我想PPSpark Executors独立创建边缘数组。每个数组可能有不同的大小并取决于顶点,因此,我还需要从0to的执行者 ID n-1。接下来,我想要一个全局 RDD 边缘数组。

在 MPI 中,我将使用处理器等级在每个处理器中创建一个数组。我如何在 Spark 中做到这一点,尤其是使用GraphX库?

因此,我的主要目标是在每个执行器中创建一组边并将它们组合成一个 RDD。

我首先尝试了鄂尔多斯的一个修改版本——仁义模型。作为参数,我只有节点数 n 和概率 p。

假设,执行程序i必须处理从101到 的节点200。对于任何节点,例如 node 101,它将以概率 p从101到创建边102 -- n。在每个执行程序创建分配的边后,我将实例化 GraphXEdgeRDDVertexRDD. 因此,我的计划是在每个执行器中独立创建边缘列表,并将它们合并到RDD.

scala apache-spark spark-graphx

3
推荐指数
1
解决办法
765
查看次数

在grep中匹配十进制数

我有一个包含以下行的文件:

时间 97.7518 秒

我想得到十进制时间。为什么以下简单的 grep 命令不起作用?

grep -Ei "\d+\.\d+" Nasa-1024-256.txt
Run Code Online (Sandbox Code Playgroud)

regex grep

3
推荐指数
1
解决办法
1万
查看次数

如何在内核空间中从另一个系统调用进行系统调用

我是Linux内核开发的新手.我在linux内核2.6中实现了一个系统调用my_pid.我想从系统调用中调用getpid系统调用.我该怎么做?

我想要的东西:

pid_t my_pid(){return getpid(); }

同样来自用户空间中的C我可以使用以下命令调用任何系统调用:syscall(); 在内核模式下执行此操作的一般方法是什么?

kernel system-calls linux-kernel

1
推荐指数
1
解决办法
1997
查看次数