问题列表 - 第38379页

F#作为HPC语言

我使用F#开发了Lattice Boltzmann(流体动力学)代码.我现在正在24核128 GB内存服务器上测试代码.代码基本上由一个用于时间演化的主递归函数和一个用于三维空间迭代的System.Threading.Tasks.Parallel.For循环内部组成.3D空间是500x500x500大,一个时间周期需要:).

let rec timeIterate time =
  // Time consuming for loop
  System.Threading.Tasks.Parallel.For(...)
Run Code Online (Sandbox Code Playgroud)

我希望服务器使用所有24个核心,即100%的使用率.我观察到的是1%-30%的使用率.

我的问题是:

  1. F#是否适合在此类服务器上进行HPC计算?
  2. 对于现实世界的问题,使用高达100%的CPU是否现实?
  3. 我该怎么做才能获得高速度?一切都在一个大的并行循环中,所以我希望这就是我应该做的......
  4. 如果F#不是一种合适的语言,那么什么语言?

谢谢你的任何建议.

编辑:我愿意分享代码,如果有人有兴趣看看它.

EDIT2:这是代码的剥离版本:http://dl.dropbox.com/u/4571/LBM.zip 它没有做任何合理的事情,我希望我没有通过剥离代码引入任何错误:)

启动文件是ShearFlow.fs,文件底部是

let rec mainLoop (fA: FArrayO) (mR: MacroResult) time =
  let a = LBM.Lbm.lbm lt pA getViscosity force g (fA, mR)
Run Code Online (Sandbox Code Playgroud)

.net f# hpc

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

如何获取和设置当前网页滚动位置?

如何获取和设置当前网页滚动位置?

我有一个很长的表单,需要根据用户操作/输入进行刷新.当发生这种情况时,页面会重置到最顶层,这对用户来说很烦人,因为他们必须向下滚动到他们所处的位置.

如果我可以在页面重新加载之前捕获当前滚动位置(在隐藏的输入中),我可以在重新加载后将其设置回来.

html javascript

109
推荐指数
4
解决办法
15万
查看次数

我可以在DataGrid表中共享DataGrid.Columns

我有3个数据网格共享相同的数据类型.我想配置一次列绑定并让3个datagrids共享资源.

例如

       <DataGrid Grid.Row="1" x:Name="primaryDG" ItemsSource="{Binding Path=dgSource AutoGenerateColumns="False">
       <DataGrid.Columns>
            <DataGridTextColumn Width="Auto" Header="Column 1" Binding="{Binding Path=Col1}"/>
            <DataGridTextColumn Width="Auto" Header="Column 2" Binding="{Binding Path=Col2}"/>
            <DataGridTextColumn Width="Auto" Header="Column 3" Binding="{Binding Path=Col3}"/>
            <DataGridTextColumn Width="Auto" Header="Column 4" Binding="{Binding Path=Col4}"/>
        </DataGrid.Columns>
    </DataGrid>
Run Code Online (Sandbox Code Playgroud)

有没有办法为每个DataGrid设置ItemsSource,然后使用datatemplate或controltemplate来获取列?

wpf

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

我们是否需要使用MappedByteBuffer.force()将数据刷新到磁盘?

我正在使用MappedByteBuffer来加速文件读/写操作().我的问题如下:

  1. 我不确定是否需要使用.force()方法将内容刷新到磁盘.似乎没有.force(),.getInt()仍然可以完美地工作(好吧,因为这是一个内存映射缓冲区,我假设.getInt()从磁盘中获取数据,这意味着数据已被刷新到磁盘已经.

  2. .force()方法是阻塞方法吗?

  3. 阻塞方法是同步块吗?

  4. 无论是否调用.force()方法,都会有巨大的性能差异.手动调用.force()有什么好处?我们应该在哪种情况下使用它?我假设没有调用它,数据仍将被写入场景后面的磁盘.

  5. 如果我们需要调用.force(),从另一个线程调用它有助于提高性能吗?由于同步问题,它会破坏数据吗?

    import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.nio.channels.FileChannel.MapMode;

公共类Main {

public static void main(String[] args) throws IOException {
    System.out.println("start");

    RandomAccessFile raf = new RandomAccessFile("test.map", "rw");
    FileChannel fc = raf.getChannel();
    MappedByteBuffer mbb = fc.map(MapMode.READ_WRITE, 0, 2000000);

    int total = 0;
    long startTime = System.currentTimeMillis();
    for (int i = 0; i < 2000000; i += 4) {
        mbb.putInt(i, i);
        //mbb.force();
        total += mbb.getInt(i);
    }
    long stopTime = System.currentTimeMillis();

    System.out.println(total);
    System.out.println(stopTime - startTime); …
Run Code Online (Sandbox Code Playgroud)

java performance nio synchronized blocking

12
推荐指数
2
解决办法
3895
查看次数

PHP date() - 插入MySQL数据库

将增量日期输入MySQL数据库时遇到一些麻烦.该字段属于类型DATE.

首先,我使用以下代码增加日期:

if($_POST['membershipLength'] == "6 Months") {
    $renew = mktime(0, 0, 0, date("m")+9, date("d"), date("y"));
}
Run Code Online (Sandbox Code Playgroud)

然后我想进入:date("m/d/y", $renew)进入数据库中的列.

谁能看到我哪里出错了?它插入的值由0组成,我假设它是默认值.

php mysql date

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

下载时获取文件名

我们提供保存在我们数据库中的文件,检索它们的唯一方法是id按照以下方式进行操作:

www.AwesomeURL.com/AwesomeSite.aspx?requestedFileId=23

当我使用WebClient类时,一切都正常工作.

我面临的问题只有一个:

我怎样才能获得真实的文件名?

我的代码看起来像这个atm:

WebClient client = new WebClient ();

string url = "www.AwesomeURL.com/AwesomeSite.aspx?requestedFileId=23";

client.DownloadFile(url, "IDontKnowHowToGetTheRealFileNameHere.txt");
Run Code Online (Sandbox Code Playgroud)

我所知道的就是身份证.

当我尝试url从浏览器访问时,这不会发生,因为它得到了正确的名称=> DownloadedFile.xls.

获得正确答案的正确方法是什么?

c# download

24
推荐指数
4
解决办法
2万
查看次数

如何在Ruby中只执行一次方法?有静态变量吗?

我写了一个脚本,其中包含一些方法定义,没有类和一些公共代码.其中一些方法执行一些非常耗时的shell程序.但是,这些shell程序只需在第一次调用方法时执行.

现在在C中,我将在每个方法中声明一个静态变量,以确保这些程序只执行一次.我怎么能用Ruby做到这一点?

ruby static

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

如何在PHP中确定我是否具有对文件夹的写入权限

我正在编写一个WordPress插件,需要操作插件目录中的文件,我无法弄清楚如何以图形方式确定PHP是否具有对文件夹的写入权限.我将如何以相对简单的方式实现这一目标?

php wordpress file-permissions

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

socket.io with express

我有一个项目,我正在使用socket.io与express,

所以我需要(我尝试过)播放一条消息,但是来自一个明确的行动.这是可能的我不知道如何获得发送或广播的参考.

app.get('/', function(req, res) {
//i need to send messages from here 
});
Run Code Online (Sandbox Code Playgroud)

像使用express + socket.io这样的其他东西正在和我合作:)

websocket node.js socket.io

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

如何从Google App Engine数据存储中检索单个记录?

使用Google App Engine以及GQL和Python:

在我的数据存储区中,我有以下内容

class Thing(db.Model):
   domain = db.StringProperty(required=True)
   name = db.StringProperty()
   ...more...
Run Code Online (Sandbox Code Playgroud)

我有我的经纪人

currentThing = db.GqlQuery("SELECT * FROM Thing WHERE domain=:1 LIMIT 1",
                                       "example.com")
Run Code Online (Sandbox Code Playgroud)

我知道这将在MOST返回一个东西,但我似乎无法找到一种方法来收集Thing对象中的那一件事而不经历一个对我来说似乎有点奇怪的循环过程.

我也尝试使用Thing.gql("WHERE domain=:1 LIMIT 1", "example.com")语法无济于事.他们似乎都回归了收藏品.

我来自.NET背景,不熟悉Python和App Engine,但我正在寻找类似于.FirstOrDefault()功能的东西.

python google-app-engine

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