小编Joe*_*off的帖子

如何操纵*巨大*数据量

我有以下问题.我需要存储大量的信息(〜32 GB)的量和能够尽可能快地操纵它.我想知道最好的方法是什么(编程语言+操作系统的组合+你认为重要的东西).

我正在使用的信息的结构是双精度浮点数(8字节)的4D数组(NxNxNxN).现在我的解决方案是将4D阵列切成2D阵列并将它们存储在我的计算机硬盘中的单独文件中.这真的很慢,数据操作难以忍受,所以这根本不是解决方案!

我正在考虑进入我国的超级计算设施并将所有信息存储在RAM中,但我不确定如何实现应用程序以利用它(我不是专业的程序员,所以任何书籍/ reference将帮助我很多).

我正在考虑的替代解决方案是购买具有大量RAM的专用服务器,但我不确定这是否能解决问题.所以现在我的无知并没有让我选择最好的方式继续前进.

如果你遇到这种情况,你会怎么做?我对任何想法持开放态度.

提前致谢!


编辑:很抱歉没有提供足够的信息,我会尝试更具体.

我正在存储一个离散的4D数学函数.我想要执行的操作包括数组的转置(改变b [i,j,k,l] = a [j,i,k,l]等),数组乘法等.

由于这是对拟议实验的模拟,因此操作仅应用一次.一旦获得结果,就不必对数据执行更多操作.


编辑(2):

我也希望将来能够存储更多信息,因此解决方案应该以某种方式可扩展.当前的32 GB目标是因为我想让N = 256点的数组,但如果我可以使用N = 512(这意味着512 GB来存储它)会更好.

memory arrays memory-management hpc

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

测量短距离

什么是无线测量两个物体(计算机,智能手机或专用设备)之间距离的最佳方法,这两个物体相距几米,精度达到~10厘米?这可能通过在WLan,蓝牙或GPS上进行捎带吗?

distance sensor

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

使用ObjectInputStream发送可序列化对象的问题

来自服务器代码的片段:

 public void run() {
        try {
          // Create data input and output streams
          ObjectInputStream inputFromClient = new ObjectInputStream(
            socket.getInputStream());
          ObjectOutputStream outputToClient = new ObjectOutputStream(
            socket.getOutputStream());

          while (true) {

         cop = inputFromClient.readObject();

         String[][] m1=new String[][] {{"1", "1","1"}};
         Object xx=new getSerialModel(m1);
         outputToClient.reset();
         outputToClient.writeObject(xx);

         outputToClient.flush();


          }
        }
Run Code Online (Sandbox Code Playgroud)

来自客户的片段:

//////////////
    /// sockt jop
    try {
    // Create a socket to connect to the server
   socket = new Socket("127.0.0."+Math.round(50+Math.random()*50), 8000);

    // Create an output stream to send data to the server
   toServer = new …
Run Code Online (Sandbox Code Playgroud)

java sockets serializable

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